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

python - 将文本用作 QItemDelegate 和 QTableView 时如何将文本设置为 QLineEdit

下面的代码创建了一个QTableView. 然后创建一个实例QAbstractTableModel并将其分配给它作为它的模型。最后,将QItemDelegate分配给QTableView

列 0 正在填充QLineEdit。虽然第 1 列填充有QComboBox. 但即使QLineEdit分配了自定义文本值,QLineEdit仍然是空白的。正确获得三个项目的情况不会发生QComboBox:'Somewhere','Over','The Rainbow'。

在此处输入图像描述

应该如何使用文本预先填充第 0 列 QLineEdits?

稍后编辑:

非常感谢法比奥的伎俩。

工作代码发布在下面。

Delegate.createEditor()我们应该实现而不是在方法内部处理值分配Delegate.setEditorData(editor, index)。在里面setEditorData我们可以得到:index.column()以及使用参数index.row()访问self.items模型使用的index变量value = index.model().items[row][column]

在此处输入图像描述

0 投票
0 回答
2064 浏览

python - 单击QTableView时如何获取委托项目

下面的代码创建了单个QTableView. 有一个QItemDelegate被指定为 PersistentEditor。创建了两种编辑器:QLineEdit为第 0 列创建,为第 1 列创建“QComboBox”。

单击时,tableView我想获取两个编辑器的实例:LineEdit 的实例和组合框的实例。如何做到这一点?

0 投票
1 回答
769 浏览

c++ - Qt TableView 模型 setData() 使应用程序崩溃

我正在学习 Qt,我现在正在开发类似 Minesweeper 的游戏。

为了显示游戏板,我将 QTableView 与扩展的自定义模型一起使用QAbstractTableModel

显示模型中的数据效果很好。我已经超载QVariant data(const QModelIndex &index, int role)并且所有单元格都正确显示了它们的“内容”。

现在我想处理游戏板点击并将任何数据传递给模型。

我重载了 setData() 函数:

并处理 TableView 点击:

tableView->model()->setData()导致应用程序崩溃:

难道我做错了什么?这是实现鼠标点击事件模型更改的好方法吗?

0 投票
1 回答
429 浏览

python - How to query open persistent delegate item

Clicking the tableView's item opens a PersistentEditor: it defaults to QSpinBox for the first column (since integer data) and QLineEdit for two others.

onClick I would like to query how many persistent editors have been already opened for the clicked row.

enter image description here

0 投票
1 回答
1697 浏览

python - 如何将 QLinearGradient 分配为 QTableView 项目背景颜色

使用 QLineEdit 的调色板,我们可以将 QGradient 指定为其背景颜色:

在此处输入图像描述

在使用QTableView它时,我会从模型的方法中为每个请求QAbstractTableModel返回一个实体。我宁愿为tableView“项目”分配渐变,而不是纯色。如何分配渐变而不是纯色?QColordataBackgroundColorRole

在此处输入图像描述

0 投票
2 回答
1012 浏览

c++ - 如何彻底改变 QAbstractTableModel 的底层数据?

这是我在这里的第一篇文章,但是自从我开始编程以来,我得到了你们所有人的很多帮助。

我是 Qt 的新手,目前正在尝试制作我的第一个项目。我的问题是关于模型、基础数据和视图之间的通信。

我首先将后台事物(数据存储等)与 GUI 分开。现在我有一个模板类Matrix,我写了一个模板类MatrixModel,它继承自QAbstractTableModel. 这工作正常,这意味着我可以编辑表格,并在视图和模型数据中刷新值。

现在我的问题是:如何在不编写新方法的情况下更改模型中的数据?

主窗口.cpp:

有什么方法可以调用m.transpose()模型的底层数据吗?如果我改变会发生什么m?它会影响模型的数据吗?我尝试了很多东西,但没有任何效果。一个“问题”是我不能使用标准的信号/槽语法,因为我正在使用模板类。

我最后一次尝试是在模型中创建一个更新类:

我试图将它与一个按钮和一个 lambda 函数连接起来:

但是如果我按下按钮,这似乎会使我的程序崩溃。我真的很绝望xD希望你能帮助我。如果您需要更多信息,请询问^^

最好的祝福

丹尼斯

编辑 1:好的,到目前为止,我发现(在您的帮助下 :)),我必须在模型中再次编写矩阵的函数(例如 transpose())并从那里发出数据更改(使用发出 dataChanged 或 beginResetModel( )...) 但我无法修改模型基础数据。如果我写

这在主窗口中:

这在模型中:

如果我按下按钮转置,我的程序就会崩溃。如果我评论该行

出来,一切正常。

编辑2:也许数据存储有问题,所以这是我的复制构造函数和矩阵类的私有变量:

0 投票
3 回答
3904 浏览

python - 如何在 Qt4 及更高版本中对 QTableView 进行排序

在此处输入图像描述

代码创建单个QTableView. 启用了列排序。当我单击列名时(1,2 或 3 没有任何反应)。如何在不使用代理模型的情况下使这种排序工作?

0 投票
0 回答
880 浏览

python - QTableView如何获取当前列及其排序方向

在此处输入图像描述

此代码创建一个单一的QTableView. 单击列会显示指示列排序方向的箭头。单击 tableView 的项目本身会打印出单击的索引。单击 tableView 项目时,我想知道三列(标题)中的哪一列是当前的(显示箭头的列)以及排序箭头指向的方向:向上或向下。如何做到这一点?

0 投票
1 回答
697 浏览

python - How to control sorting arrow indicator on QTableView

enter image description here

When this QTableView is created I want the sorting "arrow" indicator to be shown on the column at the middle. The arrow needs to be pointing down. How to achieve this?

0 投票
2 回答
5863 浏览

python - 在 PyQt QAbstractTableModel 中编辑表而不删除内容

到目前为止我做了什么:

我正在实现一个包含可编辑单元格的自定义QAbstractTableModel(在-Widget 中使用)。QTableView这些单元格的属性在我的flags()方法中指定,如下所示:

前两列中的单元格被标记为可编辑,就像我想要的那样。

我想做的事:

但是,当双击单元格以触发编辑时,包含的文本将被删除并显示一个空字段。

编辑单元格的示例

但我不想删除和替换包含的文本,因为包含的文本可能很长,不应该重新输入。我只想编辑已经包含的内容。双击时,单元格应可编辑,其中包含先前包含的文本(可能已选中)。

问题:

我怎样才能实现这种行为?我是否需要编辑我的标志方法并为这些单元格指定不同的属性?