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

qt - 来自 QAbstractListmodel headerData() 的 QML Listview 标头

我将许多 QAbstractListModels 暴露给 QML Listview (Qt4.8.2 QML 1.1)。我现在的问题是,QML ListView 忽略了我的 ListModels 的 headerData() 函数。我一直在寻找解决方案四个多小时。

我在想我必须实现自己的 Q_INVOKABLE 函数来实现这一点。

如果有办法实现 headerData() 函数,请告诉我!

提前致谢。

0 投票
1 回答
888 浏览

qt - 是否可以在 QListView 中显示复杂的小部件?

我想创建一个自定义的小部件,它可以显示系统中每个驱动器中的文件。这是布局:

QListView 的每一行都包含一个标题栏(QLabel)和一个 QListWidget,其中包含许多代表文件的图标。

我知道如何使用 QItemDelegate 自定义 QListView 的外观,但我不知道如何创建如此复杂的小部件。

有人可以帮助我吗?非常感谢您阅读这篇文章。

0 投票
1 回答
607 浏览

c++ - 覆盖 QML 文件中设置的 ListModel

我有一个 QML C++ 项目,其中 C++ 部分将后端和 QML 用户界面之间的连接联系起来。

我将具有 QAbstractListModel 属性的 QObject 的子类设置为上下文属性。

我的一个组件在 qml 文件中预定义了一个 List 模型。我想用我自己的列表模型替换它。但是如果未设置上下文属性,我想保留该模型。这允许我在没有 c++ 部分的情况下运行程序。将模型设置为上下文属性并没有进行切割,因为本地模型推翻了上下文属性。

我的 QML 看起来像这样

是否可以同时拥有 qml 文件中的模型,用于在 Designer 中显示默认值和用于 Gui 测试,如果我将 myObject 设置为上下文属性,则可以轻松覆盖?

编辑:我使用 QT 4 和 QtQuick 1.1

0 投票
3 回答
17898 浏览

qt - 在 ListView 中使用 QAbstractListModel

我是 Qt 新手,所以请多多包涵。

我已经成功地从 StringList 和 Object* 的 QList 填充 ListView

我现在正在努力的是使用 C++ 中定义的派生 QAbstractListModel 的类在 QML 中填充 ListView。

这是我的 CPP 类的原型:

MessageEntry 是一个简单的类,它包含 2 个成员、一个 QColor 和一个 QString(该类不扩展 QObject)。

我必须实现所有上述功能,因为它们在底层类中是纯虚拟的(这正常吗?到目前为止,在教程/示例中人们只提到了角色名称和数据)。

roleNames 和 data 的实现如下:

列表视图的 QML 部分是这样的:

到目前为止,这是我对如何在 CPP 和 QML 中实现事物的理解。为了链接这两者,我使用以下代码:

使用上面的代码,运行时 ListView 中不显示任何内容,并且出现以下错误:

我还在注册要导出到 QML 的模型类(不知道这是否有必要):

所以很明显,要么我误解了正确使用 QAbstractListItem 派生类,要么我错过了一个简单的重要关键信息。

我将不胜感激一些指向一些相关示例/教程的指针(其中还向您展示了如何在 QML 中正确访问模型中的数据,因为我注意到在 CPP 中它永远不会通过数据函数)。

另请注意,我使用的是 qt5 ,因此 qt4.8 样本无法解决问题。

编辑

经过长时间的挫折,我终于解决了这该死的东西出了什么问题:

我的 roleNames 函数签名错误!重载的正确签名是:

请注意 protected 和 const 修饰符。

以正确的方式声明函数后,一切正常。

如需进一步通知,实现 data 和 rowCount 就足够了:)。

谢谢您的帮助。我会接受 BaCaRoZzo 的回答,因为我只是在查看示例中的代码后才弄清楚这一点。

附带说明一下,它适用于 message 和 model.message。

0 投票
1 回答
1372 浏览

qt - 如何使用 QAbstractListModel 子类作为 listmodel 知道在 QML Listview 中单击了哪个项目

我在列表视图中使用 QAbstractListModel 子类。而且我希望能够生成一个新的列表模型,该列表模型根据单击的项目通过 c++ 传递给 QML。

实现什么方法可以判断在列表中单击了哪个项目?

我已经在网上搜索了很多,但我似乎找不到最好的方法。

此代码创建一个显示为顶层的组列表,它有一个嵌套列表,显示在组列表中的每个项目下方。嵌套列表显然显示了该组的子级.. 所以我需要一种方法来获取正在单击的对象,以便我可以在后端使用它来生成其子级的新列表。

代码是:

我希望能够获取实际对象,而不是仅获取被单击项目的名称,因为我需要从对象中提取更多数据以正确识别新子项。

如果你们能帮助我,我将不胜感激!

提前致谢!

0 投票
1 回答
943 浏览

c++ - Qt-Qml:将复选框绑定到 QAbstractListModel

我在开发程序时遇到了问题。我有一个QAbstractListModel包含一个boole属性的,我希望能够将该值传递给我的 QML 文件,其中包含一个CheckBox.

在 StackOverflow 上发现了这个问题,涵盖了同样的问题。我面临着完全相同的问题,但问题和答案涵盖了属性通过 a 发送到 qmlQ_PROPERTY而我使用 a 的情况QAbstractListmodel。我已经覆盖了setData(),data()flags()方法,一切正常,但我有一个按钮可以检查/取消选中我CheckBox的所有 es,如果用户直接选中其中一个,则无法通过我的选中/取消选中按钮进行编辑。

QAbstractListModel所以基本上,我想知道如何使用 a而不是 a来设置双向绑定Q_PROPERTY

谢谢你。

0 投票
1 回答
1211 浏览

c++ - 在另一个中使用 QAbstractListModel

我在尝试使用 Qt/QML 为我的应用程序开发数据模型时遇到问题。我已经使用 aQAbstractListModel能够将海关数据模型从 C++ 传递到 QML,它就像一个简单模型(例如基于字符串和布尔值的模型)的魅力。

但是现在我需要建立一个更困难的模型,我想知道是否可以QAbstractListModel在另一个内部使用QAbstractListModel.

让我自己解释一下。我有一个名为model_Abuild 的数据模型:

模型_A.h:

然后我需要在另一个名为的模型中使用该模型model_B

模型_B.h:

这可能吗,由于 QAbstractListModel 的 DISABLE_COPY 的所有限制问题,还是我应该找到另一种方法来构建我的数据模型?

谢谢你。

0 投票
1 回答
623 浏览

qt - QQmlListProperty vs QAbstractListModel

我试图了解如何选择使用 aQAbstractListModel或 aQObject与 a QQmlListProperty

鉴于QQmlListProperty处理必须使用 编写的“角色”功能QAbstractListModel,这似乎是一条不那么乏味的路线。

我不知道大多数人是否建议使用QAbstractListModel它只是因为它已经存在了更长的时间,还是出于某种原因它是更好的选择。

我也找不到任何关于这两种选择之间权衡的讨论。这个问题是在 Qt Developer Days 讨论中提出的QAbstractListModel,但答案是“这也可以”。

0 投票
1 回答
1850 浏览

qml - 为什么使用 QAbstractTableModel 而不是 QAbstractListModel?

我已经TableView在 QML 中使用TableViewColumns 实现了一些这样的角色:

它绑定到 C++ 模型,继承自QAbstractListModel定义的所有角色,我发现它非常自然。

但是,我发现也存在QAbstractTableModel,它允许使用列索引。我知道我可能应该使用它,但我更喜欢角​​色而不是列索引

有人可以解释一下使用的好处是QAbstractTableModel什么吗?

0 投票
1 回答
1063 浏览

qt - 对 QAbstractListModel::postion 的未定义引用

实施时出现此错误QAbstractListModel

在我向模型添加插入和删除方法之前,构建项目是成功的。

首先,我添加了 insert 和 remove 方法,但忘记调用 begin* 和 end* 方法,所以在重建项目时出现错误。

之后,我按照文档中的说明添加 begin* 和 end*。但是,当我构建项目时,我收到了上述错误。然后,我删除了插入和删除方法,错误仍然存​​在。

我曾尝试删除项目的构建目录,清理,运行qmake,然后构建项目,但它没有好。

对象模型.h

对象模型.cpp