首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

QML组件能动态创办吗

2013-06-19 
QML组件能动态创建吗本帖最后由 sunshiny0109 于 2013-06-13 09:57:01 编辑在设计界面显示内容时,把要显示

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"
    }
}


另外一个方法是用createComponent

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()
}

热点排行