3

我想创建一个下载列表(如 firefox 下载列表) (来源:cybernetnews.com

问题是我想制作这样的用户界面,但我真的不知道怎么做。我试图创建一个 QListWidget 但我只能设置文本和一个图标,我不能真正添加​​一个子布局。例如,我想要一个如下子布局:

QVBoxLayout
    QLabel
    QHBoxLayout
        QProgressBar
        QPushButton
        QPushButton
    QLabel

如何将这些子布局插入 QListWidgetItem?

谢谢!

4

1 回答 1

2

通常,您有 3 种不同的选择:

  1. 使用 QML。我从未使用 QtQuick 开发过 smth,但它似乎提供了用于创建非常复杂的布局的工具。

  2. 对列表项使用您自己的项目委托。创建应该支持一些交互性的委托的任务相对困难,因为您应该自己重绘控件并根据用户操作发送信号。

  3. 对列表中的每个项目使用ListWidget's setItemWidget。这实际上是最简单的方法(如我所见),但在长的列表上可能会出现一些性能问题。在这种情况下,您只需创建具有预期布局的小部件并将其设置为每个项目。

于 2012-08-20T17:28:45.910 回答