【发布时间】: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 图像源不像更改对象属性那么简单。