c++ - Qt5 QListView 在水平行而不是垂直列表中设置项目
问题描述
我正在设置QListView
一个自定义QStyledItemDelegate
项,我希望我的项目呈现在水平“行”中。
假设我们QListView
的模型是“A”、“B”和“C”,标准视图会将它们设为:
----------------------------------------------------------------------------------
|X[ A ]X|
| [ B ] |
| [ C ] |
----------------------------------------------------------------------------------
每个项目占据整个宽度。我想要做的是拥有A
B
并C
处于水平方向,即使模型中的每一个都位于单独的行中(并且在整个视图中只有一列)。
X[ A ]X [ B ] [ C ]
(X
==所选项目背景)
我不能使用 a 的原因QTableView
是因为我会让物品变大和变小,因此当它们太宽而不能放在一条线上时需要包装;不断更改表格中的列、行和单元格大小似乎比此工作所需的工作更多,而且我不希望视图中有表格边框。
到目前为止,我已经尝试过覆盖sizeHint
和paint
方法。我认为我不需要编辑器方法,因为这些项目没有编辑模式可以进入。
任何基本的例子对我来说都足够了。如果您在 PyQt5 中写下您的答案并且它可以帮助我找到我的答案,即使我使用的是 C++,我也会将其标记为正确答案。
解决方案
您可以使用 setFlow 将流属性从“TopToBottom”更改为“LeftToRight”,如下所示:
listView->setFlow(QListView::Flow::LeftToRight);
推荐阅读
- python - 从 Dataframe 中删除除数字和 Nan 之外的文本
- jenkins - Jenkins Build 总是失败,即使它应该是不稳定的
- python - 我应该如何使用 Pandas 中的类型列表列
- c - 我应该如何处理返回错误答案的函数?
- netbeans - Netbeans 是否支持 Windows 深色主题?
- javascript - 是否可以在定义之前在表达式中使用默认参数?
- surveyjs - 在surveyjs中处理文本更改时的可见性
- python - 覆盖范围和管道徽章未出现在 PyPI 上
- tinkerpop3 - 多线程事务中线程可以看到彼此的变化吗?
- ios - 快速在动态键和动态对象上使用 Codable