云从东方来 2024-06-26 11:59 采纳率: 0%
浏览 11

QT的QML中属性无法使用

我有一个FlightInfo.qml文件:

import QtQuick

Item {
    id:root
    property var flightName
}

有个FlightInfos.qml文件:

pragma Singleton
import QtQuick

QtObject {
    property FlightInfo f1:FlightInfo {
        id:f1
        flightName: "BJ2333"
    }

}

有一个Card.qml组件来容纳FlightInfo的item:

import QtQuick

Item {
   id:root
   property FlightInfo info
}

我在main.qml中这样使用:

import QtQuick
import QtQuick.VirtualKeyboard

Window {
    id: window
    width: 640
    height: 480
    visible: true
    title: qsTr("Hello World")


    Card {
        info:FlightInfos.f1
    }

}

就会报出错误qrc:/Flight/Main.qml:13:9: Unable to assign [undefined] to FlightInfo_QMLTYPE_0*,好像不能使用FlightInfos中的属性,但是这种用法我在QtDesignStudio中的example中看到过,哪位大神知道怎样是正确用法

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-26 11:59
    关注

    引自免费微信小程序:皆我百晓生

    在使用QML(Qt Quick Markup Language)时,你需要确保你的数据模型与你的视图关联起来。在这种情况下,你想要从FlightInfos组件获取f1实例,并将其传递给Card组件。

    首先,创建一个FlightInfos类来存储FlightInfo对象:

    import QtQuick
    
    class FlightInfos : public QmlObject {
    public:
        FlightInfo f1;
    
        void setF1(FlightInfo info) {
            f1 = info;
        }
    }
    

    然后,在你的main.qml中,将FlightInfos作为FlightInfo的依赖项添加到Card组件上:

    import QtQuick
    import QtQuick.Window
    import QtQuick.Viewport
    import QtQuick.QmlDesigner
    
    Window {
        id: window
        width: 640
        height: 480
        visible: true
        title: qsTr("Hello World")
    
        Card {
            // ...其他内容...
            dependencyProperty: root.f1
        }
    }
    

    这应该解决了你遇到的问题。现在,Card组件可以访问FlightInfo类中的属性了。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月26日

悬赏问题

  • ¥15 Windows Script Host 无法找到脚本文件"C:\ProgramData\Player800\Cotrl.vbs”
  • ¥15 matlab自定义损失函数
  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图