当拆分器更改大小时,QListWidget会调整内容大小

时间:2013-09-10 13:30:04

标签: qt qlistwidget sizehint

我有一个QListWidget,里面有一些小部件:

QListWidgetItem* w = new QListWidgetItem(ui->listWidget);
ui->listWidget->addItem(w);
w->setSizeHint(widget->sizeHint());
ui->listWidget->setItemWidget(w, widget);

然而,在调整QListWidget(它嵌入QDockwidget)之前,一切似乎都能正常工作。我是否必须迭代所有项目并手动调整它们或者是否有一个简单的技巧?

这只是一个列表,其中左侧有一个按钮,右侧有一个按钮。如果列表调整大小(QSize更改),则按钮隐藏并显示滚动条。我希望根据列表宽度获得项目的大小。

1 个答案:

答案 0 :(得分:4)

尝试将resizeMode属性设置为Adjust。这将导致QListWidget在调整小部件大小时自动将视图中的所有项目调整为QListWidget的大小。

请参阅文档here。您的代码结构如下:

QListWidgetItem* w = new QListWidgetItem(ui->listWidget);
w->setSizeHint(widget->sizeHint());
ui->listWidget->setResizeMode(QListView::Adjust);
ui->listWidget->addItem(w);
ui->listWidget->setItemWidget(w, widget);

编辑:根据商品的统一性,您还可以设置uniformItemSizes属性。如果您设置此属性,QListView可以优化视图的布局。