QML组件能动态创建吗
本帖最后由 sunshiny0109 于 2013-06-13 09:57:01 编辑 在设计界面显示内容时,把要显示的Item在qml文件中编辑,运行时加载.qml文件即可,这个过程意味着QML组件的创建属于静态创建的方式。而我现在有这样的需求,界面窗口显示出来后,某些Item并不显示,当发生了鼠标点击或其他触发事件后,这些Item才创建并显示出来,即我希望某些Item是动态创建的而不是程序一运行就创建显示出来。我的问题是:QML的Item可以在.qml文件中动态创建吗?
[解决办法]
必须可以动态创建呀,看下Qt帮助文档 参考下QML Component Element 这个
[解决办法]
可以,请到QtCreator的help中打下Loader这个关键字
Item {
width: 200; height: 200
Loader { id: pageLoader }
MouseArea {
anchors.fill: parent
onClicked: pageLoader.source = "Page1.qml"
}
}
import QtQuick 2.0
Item {
id: container
width: 300; height: 300
function loadButton() {
var component = Qt.createComponent("Button.qml");
if (component.status == Component.Ready) {
var button = component.createObject(container);
button.color = "red";
}
}
Component.onCompleted: loadButton()
}