首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在运行时通过URL操作Qt资源

在运行时通过URL操作Qt资源
EN

Stack Overflow用户
提问于 2017-06-27 01:02:38
回答 1查看 380关注 0票数 1

我在我的QML应用程序中使用Qt资源。我想在运行时更改某些项所使用的资源。

在下面的示例中,Image对象使用资源。它显示正确。如果我单击它,处理程序将设置看似相同的值,但它不起作用:Image对象无法加载资源。

代码语言:javascript
复制
import QtQuick 2.7
import QtQuick.Controls 2.0

ApplicationWindow {
    visible: true
    width: 640
    height: 480
    title: qsTr("qrc file not updating")

    Image
    {
        id: gfx
        source: "qrc:/../../../../Qt/5.9/Src/qtquickcontrols2/examples/quickcontrols2/chattutorial/shared/Ernest Hemingway@2x.png"
        width: 200
        height: 200
    }
    MouseArea
    {
        anchors.fill: gfx
        onPressed: gfx.source = "qrc:/../../../../Qt/5.9/Src/qtquickcontrols2/examples/quickcontrols2/chattutorial/shared/Ernest Hemingway@2x.png"
    }
}

qrc更改为file以使用文件而不是资源是可行的。

是否可以在运行时更改使用的资源(实例化另一个QML对象-这里是一个Image -有效,但我需要使用相同的对象)。

EN

回答 1

Stack Overflow用户

发布于 2017-06-27 02:47:12

你试过通知信号了吗?

代码语言:javascript
复制
onPressed: {
    gfx.source = "qrc://my/new/image.png";
    gfx.sourceChanged();
}

https://forum.qt.io/topic/6935/how-to-reload-an-image-in-qml/18

此外,qrc意味着它可以在.pro文件中包含的qt资源文件中找到。因此,如果它与file://一起工作,那么您可能需要将第二个资源添加到您的qresource文件中。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44764885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档