在QTableView列中显示QAbstractListModel项

时间:2011-06-21 21:40:43

标签: qt qtableview qabstractitemmodel

我一直在玩Qt并遇到一个小问题。

我想将图片列表显示为图标表。现在,我是通过继承QAbstractTableModel并将其插入QTableView的子类来实现的。

在我看来,这使代码,模型和视图过于复杂(特别是在尝试编辑/追加项目时)。尝试将模型实现为QAbstractListModel时,项目将显示为表格行。

有没有办法让QTableView显示项目为列? 修改:这样项目从左到右呈现在一行中,并换行到新行。

或者在任何情况下最好将表模型用于表视图并解决问题吗?

值得一提的是,我正在使用基于Qt Jambi的Qt的C#绑定。

2 个答案:

答案 0 :(得分:3)

QListView具有您正在谈论的功能。

如果您不需要任何特定于QTableView的功能,那么我建议切换。

如果设置“isWrapping”,则列表将从顶部开始,向下到底部,然后换行到新列。

将“flow”设置为LeftToRight以按行显示列表而不是列

您可能还需要将“resizeMode”而不是“Fixed”设置为“调整”。当调整列表大小时,它会自动移动。

希望有所帮助。

正如旁注,here是FlowLayout示例。因此,如果您只想在自调整网格中显示一组图像,这将为您完成,而不需要列表/表的所有开销。但是,它不会为您提供任何选择/编辑功能或任何只是布局。

答案 1 :(得分:0)

我在这里听不懂。您实现了TableModel,因此您可以以最理想的方式为视图准备数据。假设你有数据A,B,C,D,那么你可以返回A(00),B(01),C(10),D(11),或者例如A(00),C(01),B (10),d(11)。这是你想要做的吗?