问题标签 [qabstracttablemodel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
160 浏览

c++ - 如何实现从 QAbstractTableModel 对文件的读写到

我正在使用Qt Xlsx来编辑和编写我的 xlsx 文件。我想制作一个可以通过 .xlsx 文件读写 *.xlsx 文件的程序QAbstractTableModel

但是我很困惑如何通过 QAbstractTableModel 实现读取和写入该文件。我怎样才能做到这一点 ?

0 投票
1 回答
1850 浏览

qml - 为什么使用 QAbstractTableModel 而不是 QAbstractListModel?

我已经TableView在 QML 中使用TableViewColumns 实现了一些这样的角色:

它绑定到 C++ 模型,继承自QAbstractListModel定义的所有角色,我发现它非常自然。

但是,我发现也存在QAbstractTableModel,它允许使用列索引。我知道我可能应该使用它,但我更喜欢角​​色而不是列索引

有人可以解释一下使用的好处是QAbstractTableModel什么吗?

0 投票
1 回答
395 浏览

model-view-controller - 了解 QAbstractTableModel 中的 MVC

我有一些由我自己的类表示的数据;解决我举一个例子的想法。

然后,我有一个此类实例的列表,我想在QTableView.

然后我看到了两种从中做QTableView出来的策略:

  1. 更改MyOwnModel以使其子类化QAbstractTableModel
  2. 构建一个新的QAbstractTableModel,它以某种方式模仿MyOwnModel它的属性,例如两个QString,并将dataChanged信号连接到一个更新实例的函数MyOwnModel

我对这些都不完全满意,但我暂时没有其他想法。

哪一个最适合我的问题?(在实践中我有一个更复杂的类,但我想使用相同的框架)

0 投票
2 回答
1429 浏览

python - 如何与 QTableView 和 QComboBox 共享相同的模型

名单:

model分配给QTableView和使用QComboBox

http://i.imgur.com/Us551Nh.png

我只想Combobox显示“宠物”和“鸟”,而QTableView显示:“狗”、“鹰”和“杰伊”。如何做到这一点?

0 投票
2 回答
2503 浏览

python - 如何在pyqt中的QTableView的第一列中获取复选框

在我的 QTableView 中,我试图拥有第一列复选框,但我得到的所有行列都填充有复选框,并且默认情况下所有这些列都被选中。我也无法更改复选框的状态。

0 投票
1 回答
809 浏览

python - 如何在 PyQt 的 QTableView 中的 DisplayRole 和 EditRole 上添加验证器?

我有一个 QTableView,它使用 填充文件和文件夹作为项目QAbstractTableModel,我没有使用,QFileSystemModel因为表格视图不仅显示文件夹名称,它还显示文件夹中文件的属性。

所以我的问题是如何添加验证器,DisplayRole或者如果有人试图在 中编辑文件夹名称EditRole,这样如果模型加载数据并显示它应该用特殊字符标记文件夹名称或那些文件夹名称超过预期的字符包含文件夹名称的单元格应为红色背景,

我已经尝试通过添加一个引发异常的验证器,所以如果它很好BackgroundColorRole返回QVariantelse 在异常的情况下它返回QtCore.Qt.red

0 投票
0 回答
518 浏览

qt - Qt在代码中编辑时不会更新几个QTableView单元格

我有一个简单的逻辑,基本上是这样的:从源模型(我的自定义QAbstractTableModel)中过滤出一些条目并使用 呈现给用户QSortFilterProxyModel,它确实只有修改后的filterAcceptsRow功能。这个演示是使用简单的对话框完成的。用户从过滤的条目中选择所需的条目,并且必须更新从模型中选择的条目(实际上必须修改两个字段)。所以简化的代码是这样的:

但是,这不起作用。而且每次的行为都很奇怪。我注意到的是,当它在这个循环中到达第二个选定的行并且当它到达setData()模型中的代码时:

它返回无效索引。但是,当我交换这两个setData()代码行时,更新了一行,但没有更新第二行 - 由于索引无效。我不知道我是否解释正确,但可能这应该是我的愚蠢错误,因为我是新手。

更新:由于模型由 QList 数据组成,其中 Transaction 是定义条目字段的自定义类,因此我创建了一个函数,该函数按列号更新底层条目(可以说......)。我使用函数setValueByColumnNo。在使用自定义类列表时,我找不到更好的方法来做到这一点。

有任何想法吗?

谢谢。

0 投票
0 回答
60 浏览

c++ - 两个 QListView 和一个多维数组,一个显示所选元素的数组

问题的标题有问题,但基本上我有一个QListView并排的两个,一个二维数组并使用TableViewModel包含该数组的数组;现在我希望QListView右侧显示所选行的数组。这真的可能吗?

0 投票
0 回答
1727 浏览

c++ - 模型数据源更改时如何更新视图?

我有一个继承自的类QAbstractTableModel,它只是指向一个单独的类,供视图访问数据信息,如下所示:

底层数据集会经常变化,因此我需要模型告诉视图它需要完全重绘自己。数据集可能有不同的和更多的列、行、条目等。

以上仅在列数与之前的数据集不同时有效,否则表格将继续显示之前的数据。

我应该在这里做些什么不同的事情吗?所有其他来源都指向上述对beginResetModel()and的调用endResetModel(),但它不起作用。这些调用应该告诉所有视图他们需要重绘。我想过dataChanged(),但这似乎是一个奇怪的解决方法(我可以有比以前的数据集更多的列)来重置视图。

0 投票
1 回答
4614 浏览

c++ - 不同列宽的QTableView

我在应用程序中有一个QTableView宽度QAbstractTableModel,我想让每列具有不同的宽度,并带有调整大小选项ui->tableView->horizontalHeader()->setSectionResizeMode (QHeaderView::Stretch);

在我的模型中,我这样做:

所以我希望我的行的大小不同,但它不会发生,视图由于某种原因被忽略,而且即使没有选项QSizeHint它也不起作用。QHeaderView::Stretch如何使列和标题的大小不同?