您现在的位置是:网站首页> C/C++

QML的中属性和子对象

  • C/C++
  • 2022-03-26
  • 956人已阅读
摘要

带冒号:表示是属性,没有表示是子对象

ApplicationWindow {

    id: window //属性

    width: 360

    height: 520

    visible: true

    title: "Qt Quick Controls 2"

    //flags:Qt.FramelessWindowHint //添加了这一句


    Settings {

        id: settings

        property string style: "Default"

    }//子对象Settings,添加的子对象


    Shortcut {

        sequences: ["Esc", "Back"]

        enabled: stackView.depth > 1

        onActivated: {

            stackView.pop()

            listView.currentIndex = -1

        }

    }


    Shortcut {

        sequence: "Menu"

        onActivated: optionsMenu.open()

    }


    header: ToolBar {


注册C++对象在QML中使用

qmlRegisterType<ColorMaker>("an.qt.ColorMaker", 1, 0, "ColorMaker");


import an.qt.ColorMaker 1.0

 ColorMaker {


        id: colorMaker;


        color: Qt.green;


    }


还可以赋予全局对象

viewer.rootContext()->setContextProperty("colorMaker", new ColorMaker);

一旦调用 setContextProperty() 导出了属性,就可以在 QML 中使用了,不需要 import 语句哦。下面是 main.qml 修改后的代码:

 Button {

        id: start;

        text: "start";

        anchors.left: parent.left;

        anchors.leftMargin: 4;

        anchors.bottom: parent.bottom;

        anchors.bottomMargin: 4;

        onClicked: {

            colorMaker.start();

        }

    }



Top