您现在的位置是:网站首页> C/C++
QML的中属性和子对象
- C/C++
- 2022-03-26
- 955人已阅读
带冒号:表示是属性,没有表示是子对象
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();
}
}