问题标签 [qabstractitemmodel]
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.
qt - QTreeView & QAbstractItemModel & insertRow
我正在尝试为 QTreeView 实现 QAbstractItemModel。我在插入行时遇到问题。我注意到,如果我在应用程序的开头插入一切正常。但是如果我稍后插入行 - 在一些其他操作(如选择等)之后,新项目保持不可见。此外,QTreeView 似乎根本不起作用!我是否必须发出一些信号来通知 QTreeView 关于行插入?
这是我的插入方法:
LayersModelItem 是具有 QList 及其子项和数据的类。
我的项目的完整代码(需要 KDE 库)在这里: https ://github.com/coder89/PhotoFramesEditor/tree/v0.0.8 要查看问题,请在主窗口中选择一个蓝色项目,然后右键单击它并选择“删除项目”。(这个方法在 Canvas::removeItems() 中)并且它被完整地评论了 - 我很绝望,我试图找到这个问题的原因......(实际上它没有删除任何东西 - 它添加了新项目)。
感谢您的任何帮助和建议!
c++ - QAbstractItemModel data() is NEVER called
I'm attempting to create a QTreeView and use a custom model for it. I have placed qDebug()
statements at various places, and I have determined that data()
is never being called. How can I fix this problem?
The model's code is below
The code from the MainWindow where the view is located is below.
I should mention that the header does display for this model. However, even when I set an item, nothing is displayed in the widget save the header.
Oh and NeuralNetwork
is a sub of NeuralNode
.
qt4 - 如何在 QAbstractItemModel 和我的 std::map<> 数据之间创建连接?
我有一些数据,例如
这是一个std::map< CompanyPtr, PersonPtr >
。我想把它安装map
到QAbstractItemModel
,然后将它连接到QTreeView
。
我使用了示例Simple Tree Model,但它很复杂(这里我说的是TreeItem
类和setupModelData
方法)。
这是我的模型类:
在我的课堂上,我无法正确实现这两种方法:
也许有人已经解决了这个问题?
谢谢!
qt - Qt错误“持久模型索引损坏”为什么?
我的 Qt/面试应用程序有问题。我使用 QTreeView 来显示树数据。我基于 QAbstractItemModel 实现了我自己的模型。
在应用程序崩溃之前出现以下错误。添加新记录后经常发生这种情况。
您能否向我解释一下这个错误的含义。什么是 QPersistentModelIndex ?我没有在我的代码中使用 QPersistentModelIndex。
谢谢。
qt - QTreeView / QAbstractItemModel - 添加项目并使用 beginInsertRows
我正在基于 QAbstractItemModel 实现我的模型,并将它与 QTreeView 一起使用来显示分层数据。数据存储在 sqlite 表中。
我的问题是添加子节点时应该如何调用 beginInsertRows。假设我有一些父节点,它包含 10 个子节点。我想添加新的子节点(最后)。
我这样做是这样的:
currentNodesCount 包含值 10,这是该子节点中的行数。新节点将放置在第 11 个位置(从 0 开始计数的第 10 个)。
这个逻辑正确吗?
感谢帮助。
我也想知道使用 beginRemoveRows。
它是否正确:
currentRow 包含从 0 开始计数的已移除节点列表中的位置。
qt - QAbstractItemModel 测试使用 modeltest
我正在寻找一个关于如何使用 modeltest 来测试基于 QAbstractItemModel 的模型的好教程。我不知道如何解释显示的调试消息。
此外,我在配置 modeltest 项目以在 QtCreator 中使用我的应用程序时遇到问题。包括.pri/ .pro 不起作用。我收到一条错误消息,提示“没有法师目标的规则......”。在 modeltest/modeltest.pro 文件中修复路径后,它开始编译。但我得到了这个奇怪的断言
断言:文件 c:\ndk_buildrepos\qt-desktop\src\testlib\qtestlog.cpp 中的“QTest::testLogger”,第 232 行
任何想法为什么会发生这种情况?
我的 modeltest 文件夹位于我的项目中。我在 *.pro 文件的末尾添加了以下行
modeltest.pri 文件包含以下内容
我修改了我的代码以这种方式使用模型测试
TasksModel 是我对 QAbstractItemModel 模型的实现。ui->treeView 是显示数据的小部件。
将 modeltest 与我的应用程序集成时没有进行其他修改。
Qt版本是4.7。
c++ - QAbstractItemModel + ModelTest::rowsInserted ASSERTion 问题
我正在尝试使用 ModelTest 调试我的模型(QAbstractItemModel)。我无法理解一个断言。
ModelTest 中有两个插槽可以拦截我的模型生成的信号。
- ModelTest::rowsAboutToBeInserted
- ModelTest::rowsInserted
插槽/功能 1 看起来像这样
插槽 2 看起来像这样
我不明白 dla last 断言 (*)。让我们假设在我的应用程序中我添加了 1 行。此行是存储在我的模型中的唯一行。所以行号为0。
在我的模型中添加我调用的行之前
那么为什么modeltest需要
模型->数据(模型->索引(开始,0,父))
等于
模型->数据(模型->索引(end + 1, 0, c.parent))
我在这里想念什么?请帮忙 :)
python - 以编程方式获取和设置 QTreeview 中的活动行 (PyQt)
有没有办法获取和更改 QTreeView(不是 QTreeWidget)中的活动行?所谓活动,是指具有焦点突出显示的行,而不是选定的行。在绘画事件中,我可以QStyle.State_HasFocus
用来获取活动行,但这似乎不适用于其他地方。
qt - QAbstractItemModel + QTreeView 什么会导致项目变得不可选择?
我正在尝试基于 QAbstractItemModel 创建自己的模型。它似乎工作正常。它通过了模型测试断言。
当我删除一行时,我遇到了这个奇怪的问题。删除操作正常。但随后其他行变得不可选择(不是全部)。你有没有遇到过这样的行为?
在哪些情况下 QTreeView 可以决定该行不能被选中?
有任何想法吗 ?如果需要,我可以提供整个模型实现。
编辑:作为替代方案,我正在寻找一个 100% 工作的 QAbstractItemModel + QtSql + QTreeView 实现的例子。模型应该提供添加和删除方法,并且必须通过模型测试。这也将回答我的问题:-)
编辑:下面是我的源代码。压缩一点使其更小
ps 我现在看到 parent() 实现中有一个错误。删除 nodeParams[*].row 中的行值后包含不正确的位置。您如何在不将整个树加载到内存的情况下解决此问题?
qt - Qt:使用 QtSql 实现 QAbstractItemModel 的示例(与 QTreeView 一起使用)
我正在寻找与 QTreeView 一起使用的 QAbstractItemModel 的示例实现。该模型应该从 QSqlQuery 加载数据,并且应该以“懒惰”的方式进行。换句话说,我只想加载打开的节点/父节点的记录。我想看看如何在这个模型中正确添加和删除记录。
我尝试自己实现这样的模型,但遇到了很多不同的错误,尤其是当我开始添加和删除行时。
如果你知道我在哪里可以找到这样的例子,我将不胜感激。
谢谢 :)