Qt/QML编程之路:qml通过C++传递变量给另一个qml(42)

Qml的项目设计时,不可避免涉及到qml之间的调用,此时很正常想象到的是如何进行事件传输和参数传输。一般就是在qml文件中定义property int, 或者定义 signal mySignal。
我就遇到了这么一种情况,需要把一个image的source,也就是图片的路径信息,从设置界面直接传递到要设置背景的qml界面。
一开始,我是想如何在同一个qml中实现,发现不可行。
后来,我想可以qml之间进行传递,但是因为qml的树状结构设计,不太容易直接去调用。
再想了想,通过qml发送消息,让c++去处理。qml作为界面UI,是消息主要的发出者,尤其界面消息。
到了C++里面,对应的树状结果,就能把这个string 变量传递到中央c++主类,这个类包含了下面各个界面对应的C++类,
通过主类直接去修改那个要设置的界面,把string通过那个类的一个Set函数用进去。最终解决了这个问题。
一个叶qml文件

Item {
    id:leafItem
    width: 320
    height: 320
    visible: true

    property string strImageSource: "qrc:/bk1.png"

    Rectangle{
        id:bRect
        anchors.fill:parent
        Image{
            id:bImageTest
            source:strImageSource
        }
    }
    XXX//变更strImageSource的值,最终会用到另一个qml,策略:先传到根qml,再在跟

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-29 22:14:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-29 22:14:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-29 22:14:03       82 阅读
  4. Python语言-面向对象

    2024-01-29 22:14:03       91 阅读

热门阅读

  1. 51单片机——感应开关盖垃圾桶

    2024-01-29 22:14:03       43 阅读
  2. 面试 HTML 框架八股文十问十答第二期

    2024-01-29 22:14:03       61 阅读
  3. LeetCode 第十八天

    2024-01-29 22:14:03       66 阅读
  4. Linux编程 1/2 数据结构

    2024-01-29 22:14:03       57 阅读
  5. jvm垃圾回收器

    2024-01-29 22:14:03       61 阅读