问题标签 [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 回答
709 浏览

c++ - 在 QComboBox 中显示 QAbstractTableModel

晚上好 StackOverflow。这是我的第一个问题,所以我希望它不会太愚蠢。

我有一个模型 sublasingQAbstractTableModel存储项目继承QObject。我想显示 a 中的项目列表,该列表会QComboBox在模型更改时更新。

该模型实现了四个所需的函数rowCount()columnCount()和。data()headerData()

我的问题是:QAbstractItemModel在使用QComboBox时如何使用 a QComboBox::setModel()?(换句话说,列数是否必须等于 1,例如?)。

以及如何选择QComboBox使用时为每个项目显示的文本QAbstractModel?我找到了一种objectName()方法,QObject但我不确定它的使用方式。

谢谢 !

0 投票
2 回答
544 浏览

c++ - Qt:区分从同一个窗口或其他窗口拖动

我正在使用 QTableView,在其上设置我自己的自定义模型,从 QAbstractTableModel 继承,使用对 QTableView::setModel() 的调用。

表格视图支持拖放:我的模型类重新实现了 mimeData() 和 dropMimeData()。即使在应用程序的 2 个实例之间,也可以拖放项目。

我想要实现的是: dropMimeData() 应该检测被删除的元素是来自同一个窗口,还是来自另一个正在运行的应用程序副本的另一个窗口。它在每种情况下的行为都应该不同。

使用 dropMimeData() 的参数 Qt::DropAction 动作似乎是最自然的事情,但这不起作用:它始终是 Qt::CopyAction 或 Qt::MoveAction,与原始窗口无关,并且仅取决于QTableView。

这可能吗?

0 投票
1 回答
449 浏览

python - 如何在 QTableview (QAbstractTableModel) 中更新 ( setvalue , 排序 , 编辑 , 背景颜色 ) QProgressBar (QitemDelegate)

我是 python 的新手开发者,这是我的第一个 python 脚本。我将 QProgressBar 作为 QItemDelegate 添加到 QTableview (QAbstractTableModel) 并且它可以工作。QProgressBar 确实出现了,但是当我编辑或排序 QTableview 时它不能自动更新。QItemDelegate 的 Background color , alignment , edit 不跟角色?任何想法 ?我需要使用 setmodeldata 或 seteditordata 吗?在这种情况下有什么例子吗?

这是 QAbstractTableModel 的类

这是委托代码:

0 投票
1 回答
1647 浏览

python - 如何设置用作 qdelegate 的 Qdatetimeedit 的默认值

我在我的 QTableview 上使用 QDateTimeEdit 作为代表来显示开始日期和结束日期。当我尝试填充从数据库接收到的数据时,QDateTimeEdit 委托不显示它。

这是我的代码:

DateDelegate

AssetTableModel

AssetWidget

0 投票
3 回答
29656 浏览

python - PyQt:使用 QAbstractTableModel 向 QTableView 添加行

我对 Qt 编程非常陌生。我正在尝试制作一个简单的表格,可以通过单击按钮添加行。我可以很好地实现表格,但似乎无法让更新的数据显示在表格上。我相信我的问题源于我似乎无法使用按钮正确调用任何类型的“更改数据”方法。我在网上尝试了几种不同的解决方案,所有这些都导致了 4 岁的死胡同。到目前为止我所拥有的是基本结构,我只是不知道如何使用新数据更新表。

这是基本观点

我已经设置了一些测试数据。

在最终实现中,表格将开始为空,我想追加行并将它们显示在表格视图中。

0 投票
0 回答
121 浏览

c++ - QAbstractTableModel:无法检查创建数据

我对 QAbstractTableModel 进行了子类化,并且创建了一个信号,当QModelIndex特定列的数据发生更改时必须发出该信号。

void data(const QModelIndex &index, int role) const我写过这样的东西:

这是updateName

在这种情况下,当我创建使用此模型的小部件时,我在这一行中有一个内存异常:

如果我通过删除对如下数据的引用来更改我的方法:

我的表中的数据已正确更新,但名称更改时未发出信号。

如何正确检查我必须更新的数据,以便在更改时发出通知?

编辑:

从我的调用堆栈中,我注意到崩溃是由于递归调用造成的。在DerivedClass::data()我打电话DerivedClass::updateName(),在这xIndex.data()。xIndex 是我的实例本身,所以我有一个无限深的递归。

我找到了问题,但我找不到在指定行和列检索数据以执行检查的方法。

0 投票
0 回答
157 浏览

c++ - QTableView 通知用户输入

我创建了一个从 QTableView 派生的类。它从另一个线程更新数据并且它可以工作。

现在,我希望用户能够更改表中显示的数据。

通过覆盖flags(const QModelIndex &index) const我使用的 QAbstractTableModel,我可以单击一个单元格并插入一个值。

我的问题是当用户完成编辑单元格时我无法通知,因此在单元格中完成编辑时会显示旧值。

我已经看到在 QTableWidget 中有一个信号cellChanged似乎在做我想要的。如何使用 QTableView 和 QAbstractTableModel 做同样的事情?

0 投票
1 回答
110 浏览

qt - 来自 Socket 的 QAbstractTableModel

我试图让我的头脑围绕 QAbstractTableModel 并且不太确定如何开始。我有以下内容:从套接字读取,它返回一堆字符串 - 以 EOL 终止..

我将所有这些转储到 QStringList 中。然后我需要逐行解析这一行以创建我的表的行和列。我已经编写了一个函数来解析列表,但不确定我是否应该将指针传递给 ModelIndex,并构建表,如果是的话,那看起来像什么......真的找不到一个正在构建的示例创建时具有未知大小的多行和多列的动态表。有点困惑如何做到这一点。

谢谢,托德

0 投票
1 回答
511 浏览

qt - Qt:制作视图以更新可见数据

在我使用的程序中QTableViewQAbstractTableModel它们是连接的。模型不包含数据。当视图需要数据来显示它调用QAbstractTableModel::data和模型使用另一个对象来获取数据并返回。在某些时候,该对象中的数据会发生变化。模型不知道发生了什么变化,因此dataChanged不被调用。

我需要只更新可见部分的数据(显示在视图中)。它应该从模型中获取新数据。我试图通过调用update()repaint()视图函数来实现这一点,但这无济于事。我在想它应该调用paintEventtableview 但它没有被调用。

如何使视图更新可见部分数据?我不想更新庞大的整个数据。

0 投票
1 回答
2038 浏览

qt - QtQuick TableView CheckBox 委托调用 QAbstractTableModel 的 setData 函数

我无法连接 qml 中的 TableView 和 QT 中 QAbstractTableModel 的 setData 函数。我的想法是能够通过 CkeckBox 委托将活动检查为“已完成”。我尝试覆盖 setData 函数以使用 row 而不是 QmodelIndex 并将其 view.currentrow 作为参数从 qml 文件发送。但它不起作用(currentrow 总是发送默认的 -1 值)。

main.qml

}

TodoModel.cpp

TodoModel.h

知道我该怎么做吗?