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

0 投票
1 回答
933 浏览

c++ - Qt:从 QAbstractListModel 中删除多行

有没有办法从 QAbstractListModel 中有效地删除不连续的多行?低效示例:

问候,

0 投票
1 回答
903 浏览

c++ - 无法访问 ListView 中的 QAbstractListModel 数据

我有Foo派生自QAbstractListModel. 以及Bar我在 qml 中注册和创建的类。Bar 类包含Foo作为属性公开的对象。

注册Bar类型:

qml:

我创建 ListView 并分配 model Foo。预期的结果是看到用“test1”、“test2”、“test3”填充的委托文本,但我明白了:

0 投票
2 回答
4444 浏览

python - 如何在 python 和 qml 中自动插入/编辑 QAbstractListModel 更新?


我正在尝试插入/编辑从QAbstractListModelpyqt5 中子类化的 python 列表。这个 python 列表是在 qml 中 element的model属性中读取的。ListView我在 qml 中显示数据没有问题。当我尝试将新数据附加到 python 列表中时出现问题。

以下是我到目前为止所做的:

主要.py:

模型2.py

test2.qml:

当我单击调用addDatamodel2.py 中的方法的添加按钮时发生错误。错误在于rowCount和错误信息说TypeError: object of type 'NoneType' has no len()。我是否必须发出更改或传递一些索引和角色值,以便 qml 知道什么是新/旧并仅相应地反映更改?

非常感谢任何形式的指导!

0 投票
0 回答
87 浏览

listview - C++ QAbstractListModel 服务器端,QML ListView 客户端

我创建了一个客户端/服务器应用程序,在其中我从服务器加载客户端上的 qml 文件,如下所示:

在一个 qml 文件中,我有一个 ListView,该模型必须从 C++ 类创建,该类继承自 QAbstractListModel,最重要的是,它位于应用程序的服务器端(客户端只有 qml 文件用于接口)。

所以我想使用 QAbstractListModel 因为我想“正常”使用 ListView,也就是说单击列表中的一个项目,当我拖动列表以显示下一个或上一个项目时,列表会更新,... ,就好像它不是客户端/服务器应用程序一样。我有类似的东西:

客户端,接口的qml:

服务器上的 C++ 类:

所以我想知道如何连接这两个元素,如果可能的话?或者最好的方法是什么?

谢谢。

0 投票
1 回答
1847 浏览

c++ - 我怎样才能获得作为数组的 QAbstractListModel 的访问角色?

也许我的问题不清楚,但我希望通过代码我的问题变得更清楚。我创建了这两个结构,并在 FormModel 类中使用它们:

这是 QAbstractListModel 的数据方法:

这是qml代码:

如何从角色网格的数据中获取颜色?我在 qml 中调用 grid[index].color....

0 投票
1 回答
1035 浏览

python - 从过滤的 QListView 中获取选定的项目

当我运行我的工具并双击并项目时,它会将名称打印到控制台,在这种情况下,它会打印“评论”。但是,如果我在搜索栏中输入,它会过滤掉列表,然后再次双击该图像,它会返回错误的名称。我不确定我要去哪里错了。下面是整个应用程序的代码。

在此处输入图像描述

要进行测试,只需将代码末尾的文件夹路径更改为计算机上包含一些 jpg 的本地文件夹。我发现这是一个非常简单的应用程序,列表视图上只有一个搜索过滤器。我很困惑为什么它会返回错误的项目。我猜这与我如何检索选择有关。

在我的 QAbstractListModel 我有一个方法,我通过一个选择

完整代码

0 投票
1 回答
379 浏览

c++ - 是否可以使用 setSortRole() 在 QSortFilterProxyModel 中通过 bool 设置顺序?

您好,我有一个类 Filtro(英文是 Filter),它是 QSortFilterProxyModel ,我已将她的 sourceModel 设置为 myModel 类。myModel 类是这个类中的一个 QAbstractListModel 我有一个

瓦片类是这样的:

现在,当我使用类 Filtro 过滤列表时,我想在 m_UserRecipe == true 的所有元素之前和 m_UserRecipe == false 的所有元素之后显示在 qml 中。所以我的问题是:在 QSortFilterProxyModel 中是否可以设置具有表示布尔值的角色的顺序?

过滤器.h:

过滤器.cpp

0 投票
2 回答
943 浏览

c++ - 如何在 qt 中为 QAbstractListModel 创建 CurrentIndexChanged 信号?

我有一个继承自 QAbstractListModel 的类。现在我想为下面这个类创建一个信号

BookListModel.h

现在我想在下面的方法中使用它

但收到此错误:

错误:C2662:“void BookListModel::currentIndexChanged(int)”:无法将“this”指针从“const BookListModel”转换为“BookListModel &”

如何为此类创建当前索引更改信号?

0 投票
3 回答
478 浏览

c++ - 我应该使用多个角色还是一个将实际属性推迟到 QObject 包装/公开数据作为其属性

QAbstractListModel具有说角色的实现

比具有单一角色的实现更好(请原谅我无法想出更好的名称)

这会导致QObject*带有上述Q_PROPERTYs 的 a 被返回?

在访问委托中的值时,QML 方面的区别将是一个额外的“间接”:

对比

我倾向于 QObject 方法,因为它将数据视图与列表模型分开,并且具有重用的潜力。它也不需要您也实现该setData功能。据我所知,“许多角色”选项没有特定的专业人士,除非当然不可能正确定义QObject包装数据的适当子类(因为例如,对于特定情况,它在概念上几乎没有意义)。

0 投票
1 回答
1378 浏览

c++ - 在 QAbstractListModel 中排序/过滤 QList

我想QList用自定义对象(通过它的属性)进行排序和过滤,这是QAbstractListModel派生类中的一个属性,但我无法弄清楚分解。我想我应该使用QSortFilterProxyModel,因为它看起来完全符合我的需要,但我真的不知道。

我目前正在将我的模型投影到 QML ( GridView)。

我应该创建由我的模型派生的新类(派生自 的类QAbstractListModel),还是应该以其他方式创建?我无法弄清楚按多个值(这些过滤器的串联)过滤是如何工作的,以及如何在QSortFilterProxyModel. 我可以弄清楚,过滤后我可以简单地按 QList 中对象的属性对它们进行排序。

在模型中过滤和排序的最佳(或至少是好的)解决方案是什么?