问题标签 [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 投票
2 回答
1763 浏览

model-view-controller - QAbstractTableModel 中的自定义编辑器

有没有人有使用 QWidget 作为 QAbstractTableModel 中的编辑器的示例?
我有一列在编辑时应该创建一个带有选项列表的 QCombobox。

文档似乎建议我需要编写一个 QAbstractItemDelegate 和一个自定义绘制函数,但是在 Qt::EditRole 中简单地弹出一个标准 QCombobox 似乎有点过头了。

注意 - 每行的组合框内容都是相同的,只有在有人单击单元格时才需要显示。

我知道这应该很简单,但我无法让它工作。基于 QTableWidget 的表很容易 - 但我需要它用于非常大的数据表。

0 投票
3 回答
9842 浏览

qt - 如何将 QPushButton 插入 TableView?

我正在实施QAbstractTableModel,我想QPushButton在每行的最后一列中插入一个。当用户单击此按钮时,将显示一个新窗口,其中包含有关此行​​的更多信息。

你知道如何插入按钮吗?我知道委派系统,但所有示例都只是关于“如何使用组合框编辑颜色”......

0 投票
1 回答
2311 浏览

qt - 编辑 QTableView 单元格时设置初始文本

我对 QAbstractTableModel 进行了子类化并覆盖了 flags() 方法,以便某些表格单元格是可编辑的。问题是当我开始编辑时,现有的单元格值被删除了。我想最初选择现有的单元格值。我怎样才能做到这一点?

0 投票
2 回答
17700 浏览

qt - Qt QTableView如何有一个只有复选框的列

我们使用的是QTableViewQt 4.6.3,并且需要一个在每个单元格中只有一个复选框的列。我们使用自定义子类QAbstractTableModel作为QTableView. 现在,我们通过设置Qt::ItemIsUserCheckable标志有一个复选框。但是我们无法弄清楚如何摆脱复选框旁边的空白文本框!

我们怎样才能使列只有一个复选框,没有别的?

0 投票
5 回答
5156 浏览

c++ - 在 QTableView 中显示动画图标的最佳方式是什么?

我已经为此苦苦挣扎了一段时间,我似乎找不到正确的方法来做到这一点。

我想要的是能够使用动画图标作为我的一些项目的装饰(通常表明正在对这个特定项目进行一些处理)。我有一个自定义表格模型,我显示在QTableView.

我的第一个想法是创建一个自定义委托来处理动画的显示。当QMovie为装饰角色传递 a 时,委托将连接到QMovie,以便在每次有新框架可用时更新显示(参见下面的代码)。但是,在调用委托的方法后,画家似乎没有保持有效paint(调用画家的save方法时出现错误,可能是因为指针不再指向有效内存)。

另一种解决方案是在dataChanged每次有新帧可用时发出项目的信号,但是 1) 这会导致许多不必要的开销,因为数据并没有真正改变;2)在模型级别处理电影似乎并不干净:显示层(QTableView或委托)应该负责处理新帧的显示。

有谁知道在 Qt 视图中显示动画的干净(并且最好是有效)方式?


对于那些感兴趣的人,这是我开发的委托的代码(目前不起作用)。

0 投票
1 回答
4508 浏览

qt - 如何使用不同的行数更新 QAbstractTableModel 中的数据

我正在开发一个应用程序,每秒一次从 apache 服务器更新 QTableView 中的数据。服务器以 XML 表的形式发送数据。列数是恒定的,但行数每次都在变化。行中的数据也可能不同。

为了将 XML 转换为数据,我创建了一个 TxTableData 类,用于 TxTableModel(QAbstractTableModel 的子代)。TxTableModel 也使用 QTimer 从服务器更新数据。

问题是如果行数减少 - QTableview 没有反应。当行数增加时 - 没关系。

我需要从 QTableView 中删除所有行并用新数据填充它,但 QTableView 不这样做。你能

0 投票
1 回答
3913 浏览

qt - 子类化 QAbstractTableModel

我将 QAbstractTableModel 子类化以表示来自 QMap 的数据。此 QMap 具有 QSqlRecords 的 QLists,并且此映射由我的代码的其他部分修改。我想将此模型与 QTableView 一起使用,以显示此映射中每个键的 sql 记录。这是我的代码。

//mymodel.h

//mymodel.cpp

很抱歉这个巨大的帖子。但问题是,我看不到地图上的数据。我猜这是因为我的 data() 方法的实现有问题。但我无法弄清楚它是什么。请善待帮助我。谢谢你。

0 投票
1 回答
8006 浏览

c++ - 我如何调用 dataChanged

以下是我添加的一个行类。它由代码调用,而不是由表调用,我希望它在添加新行时正确调用 dataChanged,虽然这不起作用,但表没有做任何事情。我究竟做错了什么?

0 投票
2 回答
3451 浏览

qt - 将 QItemDelegate 与 QAbstractTableModel 一起使用

我有一个 QAbstractItemModel 和一个 QItemDelegate,这是我的问题。代表什么都不做。它的子程序正在被调用,但没有任何反应。

这是我希望在我的表中看到的内容。

文本:QComboBox:文本:文本:QProgressBar

其中 : 是列分隔符。

代表。#ifndef DELEGATEACTION_H #define DELEGATEACTION_H

模型。

我知道的唯一问题是 ModelAction::setData() 函数不完整。在完成该子例程之前,我必须返回并编辑该模型显示的数据类。组合框和进度条仍然应该显示,只是什么都不做。

在这一点上,我只看到表中每一行的 id 号和我的测试文本“bob”。QComboBox 和 QProgressBar 根本呈现。

任何帮助将不胜感激。

耶克

0 投票
1 回答
142 浏览

qt4 - 如何检测表视图中的项目何时被修改?

我有这个表格视图,在其中我在 3 列上添加了不同的项目。这些项目是可编辑的,因此我可以直接在视图中修改它们。

上面的方法是在我的表模型中声明的,当我添加和修改表中的数据时都会调用它。

我只想在修改表中的项目时发送信号。我该怎么做?有没有办法区分添加和修改?