4

我有一个 QListWidget 和一个自定义小部件类,我正在为列表小部件中出现的每个项目创建一个实例。

但我不知道如何让我的自定义小部件扩展以填充列表小部件中每一行的所有可用空间。

我的自定义小部件是在 Qt Designer 中创建的,并且我已将其大小提示设置为水平扩展,但是当放置在我的列表小部件中时它不会这样做(即在设计器中,小部件设置为 200px 宽. 列表小部件实际上是 400px 宽,但我在每一行中的自定义小部件并没有扩展以填充这个空间......)

我该如何进行这项工作?

谢谢。

4

2 回答 2

3

我假设您使用 QListWidget::setItemWidget() 将项目放在这里?

如果是这种情况,那么您通常需要将 QListWidgetItem 的 sizeHint() 设置为自定义小部件的 sizeHint() :

myListWidget->setItemWidget( myListWidgetItem, customWidget );
myListWidgetItem->setSizeHint( customWidget->sizeHint() );
于 2011-10-16T18:57:56.940 回答
1

作为更新,从 Qt 5.2 开始。你可以设置QListWidgetsizeAdjustPolicy

listWidget-setSizeAdjustPolicy(QListWidget::AdjustToContents);

每次添加新项目(其宽度超过当前宽度)时,这将调整 QListWidget 的大小。

参考:http ://doc.qt.io/qt-5/qabstractscrollarea.html#sizeAdjustPolicy-prop

于 2015-04-12T19:58:19.860 回答