C++ 使QListWidget调整其项目大小以填充空间
我有一个QListWidget和一个自定义widget类,我正在为列表小部件中出现的每个项目创建一个实例 但是我不知道如何使我的自定义小部件扩展以填充列表小部件中每一行的所有可用空间 我的自定义小部件是在Qt Designer中创建的,我已经将其大小提示设置为水平扩展,但当它放置在我的列表小部件中时不会这样做(即在Designer中,小部件设置为200px宽。列表小部件实际上是400px宽,但我的每行自定义小部件不会扩展以填充此空间…) 我该怎么做C++ 使QListWidget调整其项目大小以填充空间,c++,qt,qwidget,qlistwidget,C++,Qt,Qwidget,Qlistwidget,我有一个QListWidget和一个自定义widget类,我正在为列表小部件中出现的每个项目创建一个实例 但是我不知道如何使我的自定义小部件扩展以填充列表小部件中每一行的所有可用空间 我的自定义小部件是在Qt Designer中创建的,我已经将其大小提示设置为水平扩展,但当它放置在我的列表小部件中时不会这样做(即在Designer中,小部件设置为200px宽。列表小部件实际上是400px宽,但我的每行自定义小部件不会扩展以填充此空间…) 我该怎么做 谢谢。我假设您正在使用QListWidget:
谢谢。我假设您正在使用QListWidget::setItemWidget()将项目放在这里 如果是这种情况,则通常需要将QListWidgetItem的sizeHint()设置为自定义小部件的sizeHint():
myListWidget->setItemWidget( myListWidgetItem, customWidget );
myListWidgetItem->setSizeHint( customWidget->sizeHint() );
作为更新,自Qt 5.2以来。您可以设置
QListWidget
的SizedJustPolicy
:
listWidget SetSizedJustPolicy(QListWidget::AdjustToContent)代码>
这将在每次添加新项(其宽度超过当前宽度)时调整QListWidget的大小
参考资料:是的,这就是我正在做的。但是,当我将我的listWidgetItem
的sizeHint设置为自定义小部件的sizeHint时,我最终没有任何行(我假设它设置为0、0或其他)。。我的自定义小部件的sizeHint设置可能不正确。。。不过,这项政策正在扩大。。想法?嗯。通常默认大小策略(我认为是首选/首选)对于designer中的顶级小部件来说已经足够好了。没有深入研究UI文件和实现,我不知道问题可能是什么。你知道你的问题是什么吗?