问题标签 [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.
c++ - 如何实现从 QAbstractTableModel 对文件的读写到
我正在使用Qt Xlsx来编辑和编写我的 xlsx 文件。我想制作一个可以通过 .xlsx 文件读写 *.xlsx 文件的程序QAbstractTableModel
。
但是我很困惑如何通过 QAbstractTableModel 实现读取和写入该文件。我怎样才能做到这一点 ?
qml - 为什么使用 QAbstractTableModel 而不是 QAbstractListModel?
我已经TableView
在 QML 中使用TableViewColumn
s 实现了一些这样的角色:
它绑定到 C++ 模型,继承自QAbstractListModel
定义的所有角色,我发现它非常自然。
但是,我发现也存在QAbstractTableModel
,它允许使用列索引。我知道我可能应该使用它,但我更喜欢角色而不是列索引。
有人可以解释一下使用的好处是QAbstractTableModel
什么吗?
model-view-controller - 了解 QAbstractTableModel 中的 MVC
我有一些由我自己的类表示的数据;解决我举一个例子的想法。
然后,我有一个此类实例的列表,我想在QTableView
.
然后我看到了两种从中做QTableView
出来的策略:
- 更改
MyOwnModel
以使其子类化QAbstractTableModel
- 构建一个新的
QAbstractTableModel
,它以某种方式模仿MyOwnModel
它的属性,例如两个QString
,并将dataChanged
信号连接到一个更新实例的函数MyOwnModel
我对这些都不完全满意,但我暂时没有其他想法。
哪一个最适合我的问题?(在实践中我有一个更复杂的类,但我想使用相同的框架)
python - 如何在pyqt中的QTableView的第一列中获取复选框
在我的 QTableView 中,我试图拥有第一列复选框,但我得到的所有行列都填充有复选框,并且默认情况下所有这些列都被选中。我也无法更改复选框的状态。
python - 如何在 PyQt 的 QTableView 中的 DisplayRole 和 EditRole 上添加验证器?
我有一个 QTableView,它使用 填充文件和文件夹作为项目QAbstractTableModel
,我没有使用,QFileSystemModel
因为表格视图不仅显示文件夹名称,它还显示文件夹中文件的属性。
所以我的问题是如何添加验证器,DisplayRole
或者如果有人试图在 中编辑文件夹名称EditRole
,这样如果模型加载数据并显示它应该用特殊字符标记文件夹名称或那些文件夹名称超过预期的字符包含文件夹名称的单元格应为红色背景,
我已经尝试通过添加一个引发异常的验证器,所以如果它很好BackgroundColorRole
返回QVariant
else 在异常的情况下它返回QtCore.Qt.red
qt - Qt在代码中编辑时不会更新几个QTableView单元格
我有一个简单的逻辑,基本上是这样的:从源模型(我的自定义QAbstractTableModel
)中过滤出一些条目并使用 呈现给用户QSortFilterProxyModel
,它确实只有修改后的filterAcceptsRow
功能。这个演示是使用简单的对话框完成的。用户从过滤的条目中选择所需的条目,并且必须更新从模型中选择的条目(实际上必须修改两个字段)。所以简化的代码是这样的:
但是,这不起作用。而且每次的行为都很奇怪。我注意到的是,当它在这个循环中到达第二个选定的行并且当它到达setData()
模型中的代码时:
它返回无效索引。但是,当我交换这两个setData()
代码行时,更新了一行,但没有更新第二行 - 由于索引无效。我不知道我是否解释正确,但可能这应该是我的愚蠢错误,因为我是新手。
更新:由于模型由 QList 数据组成,其中 Transaction 是定义条目字段的自定义类,因此我创建了一个函数,该函数按列号更新底层条目(可以说......)。我使用函数setValueByColumnNo
。在使用自定义类列表时,我找不到更好的方法来做到这一点。
有任何想法吗?
谢谢。
c++ - 两个 QListView 和一个多维数组,一个显示所选元素的数组
问题的标题有问题,但基本上我有一个QListView
并排的两个,一个二维数组并使用TableViewModel
包含该数组的数组;现在我希望QListView
右侧显示所选行的数组。这真的可能吗?
c++ - 模型数据源更改时如何更新视图?
我有一个继承自的类QAbstractTableModel
,它只是指向一个单独的类,供视图访问数据信息,如下所示:
底层数据集会经常变化,因此我需要模型告诉视图它需要完全重绘自己。数据集可能有不同的和更多的列、行、条目等。
以上仅在列数与之前的数据集不同时有效,否则表格将继续显示之前的数据。
我应该在这里做些什么不同的事情吗?所有其他来源都指向上述对beginResetModel()
and的调用endResetModel()
,但它不起作用。这些调用应该告诉所有视图他们需要重绘。我想过dataChanged()
,但这似乎是一个奇怪的解决方法(我可以有比以前的数据集更多的列)来重置视图。
c++ - 不同列宽的QTableView
我在应用程序中有一个QTableView
宽度QAbstractTableModel
,我想让每列具有不同的宽度,并带有调整大小选项ui->tableView->horizontalHeader()->setSectionResizeMode (QHeaderView::Stretch);
在我的模型中,我这样做:
所以我希望我的行的大小不同,但它不会发生,视图由于某种原因被忽略,而且即使没有选项QSizeHint
它也不起作用。QHeaderView::Stretch
如何使列和标题的大小不同?