问题标签 [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.

0 投票
2 回答
1378 浏览

python-2.7 - Python+QT 中的 TreeView

我需要制作一个包含 4 列的树视图,并在第一列中带有一个复选框。我做了树视图,只是我没有把复选框放在第一列。我试过了,但它让我处于每个位置(行,列)............

这是我的代码:

0 投票
0 回答
164 浏览

qt - 如何解决qtreeview装饰错误

我有一些奇怪的行为 QTreeView + QAbstractItemModel。我的模型树数据显示正确,但是树装饰错误,见附图(红线标示)。对于项目“System:s6”,您可以看到附加行。

树

我只是想知道是我的模型实现错误还是其他错误?有什么问题?

UPD:rowCount(QModelIndex & parent)函数的调试输出

UPD2:qt 4.8.0

0 投票
1 回答
977 浏览

qt - 动态树模型 (Qt)

我用 aQAbstractItemModel来表示一个树模型(最多几个猎物)。数据本身是动态的,任何时候节点都可能出现或消失,值(或其他角色)可能会发生变化。

更改模型很容易;我想知道如何有效地发出信号以通知 QTreeView 的变化(它的大部分节点都折叠了)。

在任何给定时间,多个更改可能同时发生(行插入和/或删除)。

  1. 使用/// beginInsertRows-endInsertRows不应该有一个方法来通知视图多次更改吗beginRemoveRowsendRemoveRows
  2. 就性能而言,最佳策略是什么?例如,从叶子开始直到每个节点的根 / 从下到上(相对于从上到下)/在插入之前删除 / 等等。
  3. beginResetModel/endResetModel必然会降低效率吗?
  4. 使用有什么好处QStandardItemModel吗?(对于这种特定情况)。
0 投票
0 回答
92 浏览

qt - 具有 QAbstractItemModel 和父级在数据模型中未知的 QTreeView

我想使用 QTreeView 来可视化我的类层次结构。该层次结构是给定的,我无法更改它。但是 QAbstractItemModel 迫使我在其中实现 parent() 方法。我怎样才能做到这一点?

所以我有:

我怎样才能实现一个QModelIndex parent(const QModelIndex &index) const;方法QAbstractItemModel

0 投票
2 回答
4964 浏览

c++ - 将新项目添加到基于 QAbstractListModel 的模型时,QML 视图不会更新

我已经弄清楚如何将派生自 QAbstractListModel 的模型绑定到 QML 视图。

但是接下来我累了就不行了。如果将新项目添加到模型中,QML 视图将不会更新。这是为什么?

数据对象.h

简单列表模型.h

简单列表模型.cpp

AppCore.h

AppCore.cpp

主文件

main.qml

0 投票
2 回答
1574 浏览

c++ - 将由 QAbstractListModel 派生的类提供的 QIcon 绑定到 QML Image

我尝试将由 QAbstractListModel 派生的类提供的 QIcon 绑定到 QML Image,如下所示:

但这会导致此错误:

无法将 QIcon 分配给 QUrl

如何正确执行此操作?

0 投票
2 回答
2101 浏览

pyqt - PyQt:人类语言中的 QTreeView 和 QAbstractItemModel

在深入研究 TreeView/Model 概念的同时,这是我到目前为止“理解”的内容......

首先,我继承了MyTreeView () 类,通过将QTreeView内置分配给MyOwnAbstractItemModel ()模型来扩展它(下一步中的子类化):

我继续继承/描述MyOwnAbstractItemModel ()。它使用内置的 QAbstractItemModel() 类作为“模板”开始...

据我了解,必须声明一些MyOwnAbstractItemModel()方法才能使 MODEL 工作。我想知道在哪里可以获得这些方法()名称及其语法描述的完整列表?

我查看了在线发布的代码示例。看起来那些预定义的方法已经预定义了特定的语法......例如传入参数的数量以及预期的参数类型......例如,下面的方法没有得到任何传入参数(不清楚是什么它的目的):

但是这个方法:

接受四个参数。请指教!提前谢谢了。

0 投票
1 回答
3015 浏览

pyqt - 如何使用 PYQT QAbstractItemModel 正确处理拖放

这是我在两天的 TreeView/Model 疯狂之后结束的代码。这个主题似乎比我想象的要广泛得多。我几乎不能花这么多时间来创建一个单一的小部件。反正。TreeView 项目的拖放功能已启用。但除了一些有趣的打印输出之外,没有多少。双击一个项目允许用户输入一个不会被拾取的新项目名称。

一天后用修改后的代码编辑。

它现在是 90% 的功能性工具。

用户可以通过拖放、创建/复制/删除和重命名来操作 TreeView 项目。TreeView 项目在通过点击“打印”按钮在驱动器上创建之前以分层方式表示目录或文件夹(而不是 os.makedirs() 该工具仍然只是将每个目录打印为字符串。
我会说我很漂亮对结果感到满意。感谢hackyday以及所有回答并帮助解决我的问题的人。

最后的几个愿望...

愿望号码01:

  1. 我希望 PrintOut() 方法将使用更优雅、更智能的函数来循环遍历 TreeView 项目以构建传递给 make_dirs_from_dict() 方法的字典。

愿望号码02:

  1. 我希望删除这些项目会更稳定。由于某种未知原因,工具在第三次/第四次单击删除按钮时崩溃。到目前为止,我无法追查问题。

一个愿望03:3。祝大家一切顺利,感谢您的帮助:

0 投票
3 回答
382 浏览

qt - 跟踪 QStandardItem 生命周期

我正在为 QStandardItemModel 编写一些包装器。是否可以跟踪 QStandardItems 的生命周期(删除事件)?

我认为唯一的方法是interhit QObject + QStandardItem。但由于某些原因,我不想这样做。

更新:

当从模型中删除该项目时,我需要删除包含指向 QStandardItem 的指针的对象。

这是解决方案。但我想对外部(不是我的)QStandardItem 做同样的事情。

0 投票
1 回答
1868 浏览

qt - 基类 'QAbstractListModel' 具有私有复制构造函数

我有一个 QT QML 项目。(仍然很小)

我首先在我的UScenario模型上绑定一个列表视图,通过子类化QAbstractListModel,它工作得很好。

现在,每个UScenario都有一个列表UTask,其中也有一个列表UCondition(所以,Utask还有子类QAbstractListModel)。但是,QT Creator 给了我一个错误:

所以我不确定我的问题在哪里。我尝试阅读有关QAbstractListModelvs的文档QAbstractItemModel,但我不知道。

我还试图看看我是否曾经UTask以错误的方式构建过;我想不是。