QT。 QLabel表现

时间:2012-05-03 13:44:12

标签: c++ performance qt widget

在我的应用程序中,我有一个类似于标准的Windows资源管理器的文件管理器。

结构是:

  • QScrollArea
    • QWidget的
      • EFILE
      • EFILE
      • EFILE

等...

每个EFile小部件包含5个QLabel。因此,当文件数超过30时,我在创建文件时会有一点延迟。我决定只创建可见文件并在滚动时创建隐藏文件或在可见时调整大小。但这不是一个解决方案 - 延迟仍然存在(尽管它当然会减少)。

问题是如何在显示文件时修改我的应用程序以消除延迟。

2 个答案:

答案 0 :(得分:2)

答案是您不构成QLabel的自定义小部件。相反,您覆盖paint()函数并使用QPainter绘制文本/ pixmaps。它的工作量不如听起来那么多。在Qt示例/教程中有很多例子。

答案 1 :(得分:0)

如果它确实是您要实施的文件资源管理器,则应考虑将QFileSystemModelQTreeView结合使用,如下例所示:
http://qt-project.org/doc/qt-4.8/qfilesystemmodel.html

这将为您省去很多麻烦。