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

Bea*_*ker 3 qt qlistwidget sizehint

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

QListWidgetItem* w = new QListWidgetItem(ui->listWidget);
ui->listWidget->addItem(w);
w->setSizeHint(widget->sizeHint());
ui->listWidget->setItemWidget(w, widget);
Run Code Online (Sandbox Code Playgroud)

但是,一切似乎都正常,直到我调整了QListWidget( 它被嵌入到QDockwidget) 的大小。我是否必须遍历所有项目并手动调整它们的大小,还是有一个简单的技巧?

它只是一个列表,其中的项目在左侧有一个按钮,在右侧有一个按钮。如果列表被调整大小(QSize更改),则按钮将被隐藏并出现滚动条。我想根据列表宽度设置项目的大小。

iam*_*man 5

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

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

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

编辑:根据您的项目的一致性,您也可以从设置uniformItemSizes属性中受益。 QListView如果设置此属性,则可以优化视图的布局。