在 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)中使用发光脉动效果制作元素动画?