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

qt - 从 QAbstractItemModel 或 QAbstractListModel 创建树型模型

根据下面的代码,我需要创建一个模型,该模型将具有 N 个"System",每个"System"将具有 N 个"SytemDatabase",每个"SytemDatabase"将具有 N 个"CoresData"。这个 N 号将在应用程序启动期间获知。

目前我已经使用 ListModel 设计了这个模型并且它工作正常。现在由于某种原因,我需要将此模型移动到 cpp 端并将该模型传递给 qml。下面是QML代码供参考

考虑模型是在 cpp 端开发的,参考上面的 cpp 类 Sytem、SytemDatabase 和 CoresData ,并且在 qml 代码中传递和使用相同的模型,如下所示

我已经了解了 QAbstractListModel、QAbstractItemModel 和 QAbstractTableModel 的概念。但是我正在寻找一个像一个列表模型这样的模型,每个列表元素都将包含一个树状结构,如上面在类中提到的那样。要求任何人建议如何创建一个具有树状结构的模型。以及哪个 QAbstractxxxxxx 模型将是正确的来实现这个概念。在 QML 方面,我想通过索引直到 coresData 访问数据,就像上面的 QML 代码一样。

提前致谢。

0 投票
3 回答
434 浏览

qt - 如何使用动态更新属性更新 ListElement (QML) 值字段

在下面的代码中,属性__operatingModus_season每 30 秒更新一次。但在前端,我看不到任何价值或变化。如果我错了,请多多指教。

0 投票
1 回答
510 浏览

c++ - QTableView 中的大量数据

我正在尝试在 QTableView 中添加大量数据。由于有大量数据,为了避免冻结应用程序,我试图使用 aQAbstractTableModel不立即显示整个数据集,而只显示必要的。基于此(HERE)的 QT 示例,我有以下类: FileListModel.cpp

文件列表模型.h

在我的窗口中,我有 aQTableView和 5 QList<float>,每个代表一列。我以这种方式在我的 QTableView 中添加数据:

但是,添加的最后一个列表 ( list5) 替换了前一个列表,并且我在所有列中只有相同的文本。我知道我需要编写所需的代码来添加列。但老实说,我对这些QAbstract课程不太了解,也不知道如何进行。如果您能给我一些提示或示例,说明如何修改我的代码以便在我的模型中添加列,我将不胜感激。

0 投票
1 回答
130 浏览

qt - 将 QAbstarctListModel 拆分为子模型

我有一个自定义对象列表,我需要在 SwipeView 的多个页面中拆分这些对象。

现在,我实现了一个 QAbstractListModel,通过自定义角色将数据提供给我的 QML 视图。但是当我有超过给定数量的对象时,我需要将我的模型分成多个块,这些块将显示在 SwipeView 的不同页面上。

例如,如果我的模型有 20 个对象,我的 SwipeView 将有 2 个页面,第一个页面中有 12 个项目,第二个页面中有 8 个剩余项目,但项目的数量当然是动态的。

我知道我可以使用 QSortProxyFilter 或 DelegateModel 来根据条件过滤我的模型,但我不知道如何使用它们来创建可用作 SwipeView 页面内容的子模型的组。因为当然,我不能只在页面更改时更改过滤器,因为当从一页滑动到另一页时,这不会使项目可见。

感谢您提供有关如何实现此目的的任何提示或想法。

0 投票
0 回答
53 浏览

python - 可重新排序的列表视图不调用 removeRows()

我正在尝试实现一个能够执行内部移动(MoveAction)以及接受来自外部的拖放(CopyAction)的列表视图。

我在一些网站上读到,如果我们 dropMimeData() 以 True 返回到 QtCore.Qt.MoveAction,Qt 将调用 removeRows()。但是,下面列出的我的代码从未打印过“removeRows() called”。

我自己不能在 dropMimeData() 中调用它,因为我不知道应该删除哪个索引。(而且我认为你不应该自己做)

此外,我发现如果将它移动到原始索引之前或之后的条目,这很重要。(之前 = 我们现在需要删除旧索引加 1)

这是我的自定义 ListView 中创建 Drag 的方法

0 投票
0 回答
35 浏览

c++ - Qlist 的访问对象 member of QAbstractListModel inside QML

We have QAbstractlistModel derived class ( lets name it A )

and a QObject derived class (lets name this B)

We have QAbstractlistModel derived class ( lets name it A )

and a QObject derived class (lets name this B)

class A has a member: QList(B) modelList

modelList is accessible in QML using Q_PROPERTY macro

class B has a member: QList(QVariant) data

also data is accesable in QML using Q_PROPERTY macro

data items are user defined structs (which also are known to qml through Q_DECLARE_METATYPE)

A and B are registered in main using qmlRegisterType

class B and all of its structures are accessible in QML when we create new object of that

but if I want to access B object's property inside modelList, just recive undefined

and if print modelList items ,it shows : QVariant(B,) QVariant(B,) QVariant(B,) QVariant(B,) ...

(as QAbstractListModel::data return type is QVariant , I convert class B to QVariant to be able to return it )

Q: am I in right way ? Is there any way to cast QVariant(B,) to B in QML, to access data inside it?


What npm i will do for you, depends on what you stated in package.json.

More details here

If you want to know the exact version of the package installed after npm i you could look it up in package-lock.json

0 投票
2 回答
179 浏览

python - 无法将 CustomModel 分配给 QQmlListModel

假设我们有一个列表模型:

这稍后在 python 代码中使用:

使用它的 QML 文件(简化):

轴项:

这会产生一个错误: Unable to assign AxisModel to QQmlListModel

好的,AxisModel 在技术上不是 QQmlListModel,但它们都继承自 QAbstractItemModel。我不知道如何解决这个问题。我的两个想法是:

  1. ListModel使用与Axis.qml 定义中不同的类型。我不知道是哪一个。我尝试了 QObject、QVariant,结果不是 QML 类型。Item 不起作用,因为 AxisModel 不是 QQuickItem 实例
  2. 在 python 代码中使用一些 PySide2 注释来注释 AxisModel 类,这将通知 QML 引擎有关类型。我不知道如何解决这个问题。

谢谢你的时间。

0 投票
3 回答
1222 浏览

qt - 如何向模型中没有的 QML ComboBox 添加额外的项目?

我有ComboBox一个QAbstractListModel附加的 QML。像这样的东西:

我希望它在模型中没有的下拉列表中显示一个额外的项目。

例如,假设 中有两个项目customListModel:Apple 和 Orange。在下拉列表中,它应该显示以下选项:

  • 全选
  • 苹果
  • 橙子

我无法将它添加到模型中,因为它包含自定义对象,并且我在程序中的其他几个地方使用了这个模型,它会搞砸一切。

如何将此“全选”选项添加到ComboBox???

0 投票
0 回答
79 浏览

c++ - 使用后端列表对 QAbstractListModel 进行排序

我有一个 QAbstractListModel 派生的 C++ 类。

然后我有一个 BackEnd.cpp,它向 MyList 类对象添加和删除项目

在 Main.cpp 我注册 MyList 类型并将后端设置为 qml 根上下文

在 QML 中我使用过

现在我想对我的列表进行排序,并且已经通过了 QSortFilterProxyModel 但无法弄清楚如何将 QSortFilterProxyModel 与我当前的架构相匹配作为我注册为 qml 类型的模型。

0 投票
0 回答
67 浏览

qt - 将 QML 小部件绑定到列表模型,但让某些小部件仅绑定到特定索引?

我正在编写一个与监控服务器对话的 QML GUI。在一种情况下,有 3 个分组的远程系统,一个是主系统,另外两个是从属系统。我有每一个的完整状态,但需要显示主系统的更多细节。

例如,我收到一条更新消息,其中包含:

...我想显示所有 3 个系统的类型、名称和状态,但只显示 currentMaster 系统的详细状态 1 和详细状态 2。

我的 QML 模型应该是什么样的?我是否应该有一个我的 detailStatus 小部件绑定到的“masterModel ListModel”,以及一个用于类型/名称/状态的“allsystems ListModel”,并在每次 currentMaster 更改时更新 masterModel?或者有没有办法从单个 "allsystems ListModel" 做到这一点,使用 currentMaster 知道要绑定什么?我应该完全做其他事情吗?