qt - QListWidget 在拆分器更改大小时调整内容大小

标签 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 更改),则按钮将被隐藏并出现滚动条。我想根据列表宽度设置项目的大小。

最佳答案

尝试设置 resizeMode属性(property)到Adjust .这将导致您的 QListWidget自动将 View 中所有项目的大小调整为 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 中受益。属性(property)。 QListView如果设置此属性,则可以优化 View 的布局。

关于qt - QListWidget 在拆分器更改大小时调整内容大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18720317/

相关文章:

c++ - QListView 中的 QT 超链接

Qt 模型/ View : how to handle underlying data properly

c++ - 如何在特定位置设置QListWidget

c++ - QListWidget 项目一致定位问题

c++ - 使用自定义编辑器调整 QTableView 部分的大小

c++ - QT qmake 指令中定义?

c++ - QApplication : How to shutdown gracefully on Ctrl-C

qt - 添加对象到 QListWidget

python - Kivy BoxLayout size_hint 不起作用?