qt - 在 QTableView 列中显示 QAbstractListModel 项目

标签 qt qtableview qabstractitemmodel

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

我想将图片列表显示为图标表。现在,我通过子类化 QAbstractTableModel 来做到这一点,并将其插入 QTableView 的子类中.

在我看来,这使代码、模型和 View 过于复杂(尤其是在尝试编辑/附加项目时)。当尝试将模型实现为QAbstractListModel时,项目显示为表格行。

有没有办法让 QTableView 将项目显示为列?
编辑:使得项目从左到右呈现在单行中,并换行到新行。

或者在任何情况下都最好使用 TableView 的表模型并解决问题?

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

最佳答案

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

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

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

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

您可能还需要将“resizeMode”(而不是“固定”)设置为“调整”。当列表大小调整时,它将自动移动内容。

希望有帮助。

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

关于qt - 在 QTableView 列中显示 QAbstractListModel 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6432334/

相关文章:

c++ - 如何为QXmlStreamWriter/Reader序列化QColor、QSize、QPoint

python - 如何检索 QTableView 的选定行?

c++ - 如何在 QAbstractItemModel 中设置 QCheckBox?

pyqt - 如何使用QAbstractItemModel?

c++ - 在 Qml 场景下使用 OpenGL 渲染时出现奇怪的错误

c++ - 转到 http : no such file after sending image from Qt client

c++ - 几何着色器

qt - 如何使 restoreState() 和 saveState() 对 QTableView 类正常工作?

c++ - 未为 QTableView 行调用 QStyledItemDelegate 的 sizeHint 方法

c++ - 将派生自 QAbstractListModel 的类提供的 QIcon 绑定(bind)到 QML Image