Qt5 QListView将项目设置为横排而不是竖排列表。

问题描述 投票:0回答:1

我正在建立一个 QListView 随心所欲 QStyledItemDelegate 我想让我的项目呈现在一个水平的 "行 "中。

假设我们的 QListView 的模型是 "A"、"B "和 "C",标准视图将它们作为。

----------------------------------------------------------------------------------
|X[ A                                                                          ]X|
| [ B                                                                          ] |
| [ C                                                                          ] |
----------------------------------------------------------------------------------

每个项目都会占据整个宽度 我想做的是让 A BC 在水平方向上,即使模型中的每一个都是单独的一行(整个视图中只有一列)。

X[ A ]X [ B ] [ C ]

(X == 选定项目背景)

我不能使用的原因是 QTableView 是因为我会让项目的大小增加和减少,因此当它们变得太宽而无法在一行中容纳时,就需要进行包装;不断地改变表格中的列、行和单元格的大小似乎比工作所需的更多,而且我不希望在视图中出现表格边框。

到目前为止,我已经尝试过在视图中覆盖 sizeHintpaint 方法。我认为我不需要编辑方法,因为这些项目不会有编辑模式可以进入。

任何基本的例子对我来说都是足够的。如果你用PyQt5写出你的答案,并且它能帮助我找到我的答案,我会把它标记为正确的答案,尽管我使用的是C++。

c++ qt qt5 qlistview qstyleditemdelegate
1个回答
1
投票

你可以通过下面的setFlow将flow属性从 "TopToBottom "改为 "LeftToRight"。

listView->setFlow(QListView::Flow::LeftToRight);
© www.soinside.com 2019 - 2024. All rights reserved.