我正在建立一个 QListView
随心所欲 QStyledItemDelegate
我想让我的项目呈现在一个水平的 "行 "中。
假设我们的 QListView
的模型是 "A"、"B "和 "C",标准视图将它们作为。
----------------------------------------------------------------------------------
|X[ A ]X|
| [ B ] |
| [ C ] |
----------------------------------------------------------------------------------
每个项目都会占据整个宽度 我想做的是让 A
B
和 C
在水平方向上,即使模型中的每一个都是单独的一行(整个视图中只有一列)。
X[ A ]X [ B ] [ C ]
(X
== 选定项目背景)
我不能使用的原因是 QTableView
是因为我会让项目的大小增加和减少,因此当它们变得太宽而无法在一行中容纳时,就需要进行包装;不断地改变表格中的列、行和单元格的大小似乎比工作所需的更多,而且我不希望在视图中出现表格边框。
到目前为止,我已经尝试过在视图中覆盖 sizeHint
和 paint
方法。我认为我不需要编辑方法,因为这些项目不会有编辑模式可以进入。
任何基本的例子对我来说都是足够的。如果你用PyQt5写出你的答案,并且它能帮助我找到我的答案,我会把它标记为正确的答案,尽管我使用的是C++。
你可以通过下面的setFlow将flow属性从 "TopToBottom "改为 "LeftToRight"。
listView->setFlow(QListView::Flow::LeftToRight);