在QML中编写文件管理器

Writing a file manager in QML

本文关键字:文件管理器 QML      更新时间:2023-09-26

我刚开始学习QML,以前没有Qt或GUI开发的经验。我的第一个任务是编写一个文件管理器。到目前为止,我喜欢QML的一点是,我可以用纯文本进行设计,但要找到实现哪怕是简单事情的方法也很有挑战性。目前我使用Qt.labs.FolderListModel 2.1作为目录列表的工作马,我甚至还没有接触过C++或PyQt,现在它纯粹是QML。

因此,我有几个关于我的小文件管理器的未来路径的问题:

  1. FolderListModel是否足够强大,可以完成多功能文件管理器能做什么?在我看来,QFileSystemModel看起来功能更完整?事实上前者在Qt.labs,这让我有点担心。如果确实CCD_ 5是一个"快而脏"的东西,这是否意味着最好换成QFileSystemModel更快?因为我是从QML而不是传统的C++角度,取代我现在的是什么感觉QML中的FolderListModel代码到由Qt/C++或PyQt支持的东西
  2. 相关:我听说实际上可以用纯QML(使用JavaScript)编写完整的应用程序。如果应用程序是由一些后端驱动的,例如数据库,我可以看到QML本身可能不够有表现力。然而,在我编写文件管理器的情况下,尽管有"性能"的争论,但尝试坚持纯QML,对所有业务逻辑使用JavaScript是个好主意吗

我最近一直在QML中开发一个简单的文件管理器。如果你只坚持QML,你将面临的问题是:

  • 无法知道当前插入了多少驱动器
  • 无法轻松地按名称对文件进行排序。由于这种情况,使用提供的排序标志将导致B.txta.txt之前

幸运的是,将C++类与QML连接起来很容易,因此您将始终能够扩展默认的QML功能。

如何连接C++和QML:http://doc.qt.io/qt-5/qtqml-cppintegration-topic.html