使QListWidget调整其项目大小以填充空间

时间:2011-10-16 17:56:41

标签: c++ qt qwidget qlistwidget

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

但我无法弄清楚如何扩展自定义窗口小部件以填充列表窗口小部件中每行的所有可用空间。

我的自定义窗口小部件是在Qt Designer中创建的,我将其大小提示设置为水平扩展,但是当放置在我的列表窗口小部件中时它不会执行此操作(即在设计器中,窗口小部件设置为说,200px宽。列表小部件实际上是400px宽,但每行中的自定义小部件不会扩展以填充此空间...)

我如何使这项工作?

感谢。

2 个答案:

答案 0 :(得分:2)

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

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

myListWidget->setItemWidget( myListWidgetItem, customWidget );
myListWidgetItem->setSizeHint( customWidget->sizeHint() );

答案 1 :(得分:0)

作为更新,自Qt 5.2起。您可以设置QListWidget' s sizeAdjustPolicy

listWidget-setSizeAdjustPolicy(QListWidget::AdjustToContents);

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

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