在我的应用程序中,我有一个类似于标准 Windows 资源管理器的文件管理器。
结构是:
- QScrollArea
- QWidget
- 电子档案
- 电子档案
- 电子档案
ETC...
每个 EFile 小部件包含 5 个 QLabel。因此,当文件数超过 30 时,我在创建它们时会有一点延迟。我决定只创建可见文件并在滚动时创建隐藏文件或在它们变得可见时调整大小。但这不是一个解决方案 - 延迟仍然存在(尽管它当然减少了)。
问题是我应该如何修改我的应用程序以消除显示文件时的延迟。
在我的应用程序中,我有一个类似于标准 Windows 资源管理器的文件管理器。
结构是:
ETC...
每个 EFile 小部件包含 5 个 QLabel。因此,当文件数超过 30 时,我在创建它们时会有一点延迟。我决定只创建可见文件并在滚动时创建隐藏文件或在它们变得可见时调整大小。但这不是一个解决方案 - 延迟仍然存在(尽管它当然减少了)。
问题是我应该如何修改我的应用程序以消除显示文件时的延迟。
答案是您不编写自定义的 QLabels 小部件。相反,您覆盖paint() 函数并使用QPainter 绘制文本/像素图。这并不像听起来那么工作。Qt 示例/教程中有大量示例。
如果它确实是您要实现的文件资源管理器,则应考虑将 aQFileSystemModel
与 a 结合使用,如下面QTreeView
的示例所示:http:
//qt-project.org/doc/qt-4.8/qfilesystemmodel.html
这将为您省去很多麻烦。