gpt4 book ai didi

c++ - 使用 QML 更改 C++ 模型

转载 作者:太空狗 更新时间:2023-10-29 21:26:22 26 4
gpt4 key购买 nike

我想扩展 Qt 文档中名为“Object ListModel Example”的示例(你可以在 http://qt-project.org/doc/qt-4.8/declarative-modelviews-objectlistmodel.html 上找到它)。

我正在尝试添加一个简单的 GUI 功能:一个更改内容的菜单项模型中第一个数据项的(即名称)。像这样:

MenuItem {
text: "Item 123"
onClicked: {
myModel.setProperty(0,"name","Item 123") //this gives me error
}
}

我可以在 QML 中创建菜单,但我找不到在模型中进行更改的正确方法。

顺便说一下,setContextProperty 和 qmlRegisterType 之间有什么区别(本例中仅使用第一个,但许多其他示例包括第二个)。

最佳答案

那种模型实在是不适合 retrofit 。无法通知 View 更改。更好的选择是使用 QAbstractItemModel:http://qt-project.org/doc/qt-4.8/declarative-modelviews-abstractitemmodel.html

使用 QAbstractItemModel 的更简单方法是通过 QStandardItemModel:http://qt-project.org/doc/qt-4.8/qstandarditemmodel.html

setContextProperty() 将单个命名属性添加到上下文中。 qmlRegisterType() 向 QML 引擎注册一个 QObject 派生类型,允许它实例化该类型。例如,QDeclarativeItem 类型在引擎中注册为“Item”,当 Item {} 出现在 QML 代码中时,引擎就是这样知道要创建什么的。

关于c++ - 使用 QML 更改 C++ 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11820894/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com