在 qt creator 中从 ..qml 文件生成 .cpp 和 .h 文件

Posted

技术标签:

【中文标题】在 qt creator 中从 ..qml 文件生成 .cpp 和 .h 文件【英文标题】:Generating .cpp and.h file from ..qml file in qt creator 【发布时间】:2016-12-09 06:07:21 【问题描述】:

如何为 login.qml 文件生成 .cpp 和 .h 文件?

我已经为登录页面编写了一个 .qml 文件。

我的代码如下

导入 QtQuick 1.0

Rectangle
    id:screen
    color: "lightgray"
    width: 3000; height:2700

    Column 
        id: column1
        width: 201
        height: 400

        Row 
            id: row1
            width: 40
            height:50

            TextInput 
                id: userName
                x: 40
                y: 18
                width: 80
                height: 20
                text: qsTr("UserName")
                font.pixelSize: 12
            

            Rectangle 
                id: rectangle1
                x: 115
                y: 18
                width: 80
                height: 20
                color: "#ffffff"
            


        

        Row 
            id: row2
            width: 40
            height: 50

            TextInput 
                id: password
                x: 40
                y: 18
                width: 80
                height: 20
                text: qsTr("Password")
                font.pixelSize: 12
            

            Rectangle 
                id: rectangle2
                x: 115
                y: 18
                width: 80
                height: 20
                color: "#ffffff"
            
        

        Row 
            id: row3
            x: 8
            y: 113
            width: 40
            height: 50

            Rectangle 
                id: rectangle3
                x: 8
                y: 8
                width: 80
                height: 20
                color: "#ffffff"

            Text 
                    id: login
                    text: "Login"
                    x:4
                    y:4
                    width:30
                    height:10
                    font.pixelSize: 12
                

                   

        



    

    MouseArea 
            anchors.fill: parent
            onClicked: 
                myclass.doStuffFromQmlSlot();

                Qt.quit();
            
        


【问题讨论】:

import QtQuick 1.0 --> Qt & Qt Creator 版本是什么? QtQuick 1 在 Qt 5 中已弃用。您的 Qt Creator 中可能有一个“Qt Quick Application”项目模板(至少在较新的版本中有,不确定旧版本),只需创建一个并替换那里的 QML(可能会更改 main.cpp 以加载您的文件),然后您可以为您的代码构建一个实际的可执行文件。 你为什么要这样做?在 Qt 企业版中,有一个 Qt Quick Compiler,可以透明地将 qml 文件编译为 c++。 【参考方案1】:

这将是相当多的工作。

您需要编写一个 C++ 代码生成器或找到一个现有的。

您需要解析 QML 代码或加载它并遍历树以提供代码生成器。

然后,您生成的代码将依赖于私有 Qt 标头,或者您需要自己的 QtQuick 类型实现。

【讨论】:

以上是关于在 qt creator 中从 ..qml 文件生成 .cpp 和 .h 文件的主要内容,如果未能解决你的问题,请参考以下文章

Qt Creator qml:使用(额外)Qt 组件库(ubuntu)

如何在 Qt Creator 中解决“找不到 QML 模块”

如何在QML(QT Creator)中使用发光脉动效果制作元素动画?

如何完全禁用 Qt Creator 中的 QML 调试器?

如何在 Ubuntu 中从控制台运行 Qt Creator?

错误:QT 中的未知模块:qml quick - Qt Creator