Tim*_*Tim 12 qt qt-creator qml qtquick2 qtquick-designer
在Qt 5.4中,创建新"QtQuick UI文件"时的模板生成两个文件:MyScreen.qml
和MyScreen.ui.qml
.
该MyScreen.ui.qml
文件似乎仅适用于UI,因为Qt Creator建议您只应在设计模式下编辑它.这意味着我应该在那里创建UI对象(标签,按钮等),并以某种方式MyScreen.qml
在逻辑所在的文件中引用它们.原则上这听起来不错,但遗憾的是Qt没有提供如何使用这两个文件的任何示例.
以下是这些文件的内容:
MyScreen.qml
:
import QtQuick 2.4
MyScreen {
}
Run Code Online (Sandbox Code Playgroud)
MyScreen.ui.qml
(我在设计模式中添加了Text标签):
import QtQuick 2.4
Item {
width: 400
height: 400
Text {
id: text1
x: 144
y: 151
width: 103
height: 31
text: qsTr("Text")
font.pixelSize: 12
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试实例化一个MyScreen
用于a StackView
(见下文),但(不出所料)我没有看到标签.
main.qml
:
import QtQuick 2.4
import QtQuick.Controls 1.3
import QtQuick.Window 2.2
Window {
visible: true
StackView {
id: stack
anchors.fill: parent
initialItem: myscreen
}
MyScreen {
id: myscreen
anchors.fill: parent
}
}
Run Code Online (Sandbox Code Playgroud)
QML新手的任何指针?
在 QtCreator 中创建 QtQuick UI 文件时,应以不同的方式命名“组件名称”和“组件表单名称”。
MyScreen.qml 创建一个MyScreen
组件,但是在实现中:
MyScreen { /* ... */}
Run Code Online (Sandbox Code Playgroud)
MyScreen
递归地创建自身。
MyScreen
在本例中,MyScreen.ui.qml在项目中创建一个组件。同时,QtCreator自动生成的MyScreen.qml中的代码使用了MyScreen
MyScreen.ui.qml创建的组件。不幸的是,MyScreen
它也是 MyScreen.qml 的名称,并使其在运行时递归地创建自身。
使用不同的名称可以解决问题。例如,将 MyScreen.ui.qml 重命名为 MyScreenForm.ui.qml。
归档时间: |
|
查看次数: |
4649 次 |
最近记录: |