【问题标题】:Change QML Image source from C++从 C++ 更改 QML 图像源
【发布时间】: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 图像源不像更改对象属性那么简单。

标签: c++ qt qml


【解决方案1】:

Qt 只有 C++ api,但您可以创建具有 C 函数定义但具有 C++ 实现的单独包装库

【讨论】:

  • 哦,谢谢,但我的代码是 c++,很抱歉造成误解。所以 api 不是问题,只是想知道如何从 C++ 更改 QML 图像源
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-21
  • 1970-01-01
  • 2018-12-01
  • 2015-05-29
  • 2014-02-12
  • 1970-01-01
  • 2020-02-12
相关资源
最近更新 更多