问题标签 [qabstractlistmodel]
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.
c++ - Qt:从 QAbstractListModel 中删除多行
有没有办法从 QAbstractListModel 中有效地删除不连续的多行?低效示例:
问候,
c++ - 无法访问 ListView 中的 QAbstractListModel 数据
我有Foo
派生自QAbstractListModel
. 以及Bar
我在 qml 中注册和创建的类。Bar 类包含Foo
作为属性公开的对象。
注册Bar
类型:
qml:
我创建 ListView 并分配 model Foo
。预期的结果是看到用“test1”、“test2”、“test3”填充的委托文本,但我明白了:
python - 如何在 python 和 qml 中自动插入/编辑 QAbstractListModel 更新?
我正在尝试插入/编辑从QAbstractListModel
pyqt5 中子类化的 python 列表。这个 python 列表是在 qml 中 element的model
属性中读取的。ListView
我在 qml 中显示数据没有问题。当我尝试将新数据附加到 python 列表中时出现问题。
以下是我到目前为止所做的:
主要.py:
模型2.py
test2.qml:
当我单击调用addData
model2.py 中的方法的添加按钮时发生错误。错误在于rowCount
和错误信息说TypeError: object of type 'NoneType' has no len()
。我是否必须发出更改或传递一些索引和角色值,以便 qml 知道什么是新/旧并仅相应地反映更改?
非常感谢任何形式的指导!
listview - C++ QAbstractListModel 服务器端,QML ListView 客户端
我创建了一个客户端/服务器应用程序,在其中我从服务器加载客户端上的 qml 文件,如下所示:
在一个 qml 文件中,我有一个 ListView,该模型必须从 C++ 类创建,该类继承自 QAbstractListModel,最重要的是,它位于应用程序的服务器端(客户端只有 qml 文件用于接口)。
所以我想使用 QAbstractListModel 因为我想“正常”使用 ListView,也就是说单击列表中的一个项目,当我拖动列表以显示下一个或上一个项目时,列表会更新,... ,就好像它不是客户端/服务器应用程序一样。我有类似的东西:
客户端,接口的qml:
服务器上的 C++ 类:
所以我想知道如何连接这两个元素,如果可能的话?或者最好的方法是什么?
谢谢。
c++ - 我怎样才能获得作为数组的 QAbstractListModel 的访问角色?
也许我的问题不清楚,但我希望通过代码我的问题变得更清楚。我创建了这两个结构,并在 FormModel 类中使用它们:
这是 QAbstractListModel 的数据方法:
这是qml代码:
如何从角色网格的数据中获取颜色?我在 qml 中调用 grid[index].color....
c++ - 是否可以使用 setSortRole() 在 QSortFilterProxyModel 中通过 bool 设置顺序?
您好,我有一个类 Filtro(英文是 Filter),它是 QSortFilterProxyModel ,我已将她的 sourceModel 设置为 myModel 类。myModel 类是这个类中的一个 QAbstractListModel 我有一个
瓦片类是这样的:
现在,当我使用类 Filtro 过滤列表时,我想在 m_UserRecipe == true 的所有元素之前和 m_UserRecipe == false 的所有元素之后显示在 qml 中。所以我的问题是:在 QSortFilterProxyModel 中是否可以设置具有表示布尔值的角色的顺序?
过滤器.h:
过滤器.cpp
c++ - 如何在 qt 中为 QAbstractListModel 创建 CurrentIndexChanged 信号?
我有一个继承自 QAbstractListModel 的类。现在我想为下面这个类创建一个信号
BookListModel.h
现在我想在下面的方法中使用它
但收到此错误:
错误:C2662:“void BookListModel::currentIndexChanged(int)”:无法将“this”指针从“const BookListModel”转换为“BookListModel &”
如何为此类创建当前索引更改信号?
c++ - 我应该使用多个角色还是一个将实际属性推迟到 QObject 包装/公开数据作为其属性
是QAbstractListModel
具有说角色的实现
比具有单一角色的实现更好(请原谅我无法想出更好的名称)
这会导致QObject*
带有上述Q_PROPERTY
s 的 a 被返回?
在访问委托中的值时,QML 方面的区别将是一个额外的“间接”:
对比
我倾向于 QObject 方法,因为它将数据视图与列表模型分开,并且具有重用的潜力。它也不需要您也实现该setData
功能。据我所知,“许多角色”选项没有特定的专业人士,除非当然不可能正确定义QObject
包装数据的适当子类(因为例如,对于特定情况,它在概念上几乎没有意义)。
c++ - 在 QAbstractListModel 中排序/过滤 QList
我想QList
用自定义对象(通过它的属性)进行排序和过滤,这是QAbstractListModel
派生类中的一个属性,但我无法弄清楚分解。我想我应该使用QSortFilterProxyModel
,因为它看起来完全符合我的需要,但我真的不知道。
我目前正在将我的模型投影到 QML ( GridView
)。
我应该创建由我的模型派生的新类(派生自 的类QAbstractListModel
),还是应该以其他方式创建?我无法弄清楚按多个值(这些过滤器的串联)过滤是如何工作的,以及如何在QSortFilterProxyModel
. 我可以弄清楚,过滤后我可以简单地按 QList 中对象的属性对它们进行排序。
在模型中过滤和排序的最佳(或至少是好的)解决方案是什么?