如何创建网格样式QListWidget?

Obj*_*_88 2 python qt qt4 pyqt pyside

我目前正在处理一个我想以网格样式设置的列表,并且很好奇我该怎么做。我不认为表格会起作用,因为我希望将其格式化为:

option  option  option  option

option  option  option  option

option  option  option  option

option  option  option  option
Run Code Online (Sandbox Code Playgroud)

每行约4个选项,没有更多信息分成几列,每行代表一个ListWidgetItem。

Jon*_*per 5

您正在寻找这样的东西:

QListWidget *listWidget = new QListWidget;

//Lays out horizontally instead of vertically
listWidget->setFlow(QListView::LeftToRight);

//Dynamically adjust contents
listWidget->setResizeMode(QListView::Adjust);

//This is an arbitrary value, but it forces the layout into a grid
listWidget->setGridSize(QSize(64, 64));

//As an alternative to using setGridSize(), set a fixed spacing in the layout:
listWidget->setSpacing(someInt);

//And the most important part:
listWidget->setViewMode(QListView::IconMode);
Run Code Online (Sandbox Code Playgroud)

在Qt Designer中使用这些属性。从设置开始,QListView::IconMode然后从那里开始,直到获得所需的行为。

  • 不用担心,一旦获得此信息,这将非常容易。对于任何好奇的人,您只需将wrap设置为true即可,然后执行list_width = items_per_row * list_item_width (2认同)