从 C++ 更改 QML 图像源
Posted
技术标签:
【中文标题】从 C++ 更改 QML 图像源【英文标题】:Change QML Image source from C++ 【发布时间】:2020-02-06 09:27:03 【问题描述】:如果您查看下面的示例,我可以使用 QT 从我的 C++ 代码中更改 QML 对象的属性。
C++
QQuickItem* objectimage = quickView->rootObject();
QObject *im = objectimage->findChild<QObject*>("rect");
im->setProperty("color", "red");
QML
Image
objectName: "ima"
id:pic
source: "bgnight.png"
Rectangle
objectName: "rect"
id:redRect1
width: 100
height: 100
x: 130
y:230
color:"transparent"
我的问题是如何以与 C 相同的方式更改图像的来源。 我想从 C++ 更改 QML 的背景图像。
Image
property string src: "bge.png"
source: src
objectName: "ima"
id:pic
【问题讨论】:
首先,C++ 不是 C。然后,我会反转依赖并将图像源绑定到 C++ 对象的属性。 您确定来源是有效的网址吗? 我没有看到在您的代码示例中更改 image source 的尝试。您是否尝试以与更改颜色属性相同的方式更改源? 是的,图像与 QML 文件位于同一目录中,因此可以正常加载。只是想知道如何从 C++ 中更改它。是的,我知道 C 不是 C++,抱歉打错了。 是的,如果尝试更改源会产生运行时错误,更改 qml 图像源不像更改对象属性那么简单。 【参考方案1】:Qt 只有 C++ api,但您可以创建具有 C 函数定义但具有 C++ 实现的单独包装库
【讨论】:
哦,谢谢,但我的代码是 c++,很抱歉造成误解。所以 api 不是问题,只是想知道如何从 C++ 更改 QML 图像源以上是关于从 C++ 更改 QML 图像源的主要内容,如果未能解决你的问题,请参考以下文章