在 QListWidget 中以可交互方式调整大小的行

interactivly resizable rows in QListWidget

本文关键字:调整 交互方式 QListWidget      更新时间:2023-10-16

在QTableWidget中,我可以通过将verticalHeaderresizeMode设置为Interactive,将行配置为用户在运行时可调整大小,如下所示:

    table.verticalHeader().setResizeMode(QtGui.QHeaderView.Interactive)

如何为QListWidget配置类似的行为?不幸的是,QListWidget resizeMode没有Interactive项目,我也没有找到类似的东西。

最好的方法是为整个列表配置它,但是当可以用于单行/项目时,也可以。

正如 doc 所说:

此视图不显示水平或垂直标题;显示 带有水平标题的项目列表,请改用 QTreeView。

因此,您应该将QTreeView(或QTreeWidget)与一列一起使用,并且可能具有特定的样式。

另一种方法。没有标题,因此您可以提供一些工具(对话框窗口,滑块或其他东西),用户可以在其中更改行高,要更改行高,您只需使用setData()并将QSize()设置为Qt::SizeHintRole。例如:

ui->listWidget->model()->setData(ui->listWidget->currentIndex(),
                                 QSize(40,40),Qt::SizeHintRole);