我有一个 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/