Luc*_*uca 3 qt qml qtquick2 qtquickcontrols
我刚开始玩QML并且有一个视图,我有一堆组件如下:
Window {
....
property Component dateTumbler: ControlView {
// Definition follows
}
property Component timeTumbler: ControlView {
// More definition follows
}
// More controls
}
Run Code Online (Sandbox Code Playgroud)
这使得主QML文件编辑和维护非常冗长且繁琐.我试着把它分成不同的文件,如下所示:
// DateTumblerView.qml
component: DateTumblerView { // Not sure how to inherit here..
// Definition here
}
Run Code Online (Sandbox Code Playgroud)
我试图像这样使用它:
property component dateTumbler: DateTumblerView {}
Run Code Online (Sandbox Code Playgroud)
然而,这永远不会奏效,而且DateTumblerView从未找到过.我不确定我是否正确这样做.
[编辑] ControlView定义如下:
import QtQuick 2.2
import QtQuick.Controls 1.1
import QtMultimedia 5.5
Rectangle {
id: view
property bool darkBackground: false
Text {
id: textSingleton
}
SoundEffect {
id: playCalSound
source: "qrc:/sound/test.wav"
}
}
Run Code Online (Sandbox Code Playgroud)
[结束编辑]
将QML代码拆分成多个文件的正确方法是什么?
您的DateTumblerView.qml文件应如下所示:
ControlView {
// More definition follows
}
Run Code Online (Sandbox Code Playgroud)
你会像这样使用它:
property Component dateTumbler: DateTumblerView {}
Run Code Online (Sandbox Code Playgroud)
要么:
Component {
id: dateTumbler
DateTumblerView {}
}
Run Code Online (Sandbox Code Playgroud)
或者如果您想直接使用它:
DateTumblerView {}
Run Code Online (Sandbox Code Playgroud)
它与您的代码只在一个文件中时几乎相同.您可以随时<Type> {}继承该类型,并可以设置或添加新属性,函数和子组件.区别在于它位于单独的文件中,具有特定名称(文件名),您可以根据需要重复使用该代码.
有关更多详细信息,请参阅定义要重用的自定义QML类型.
| 归档时间: |
|
| 查看次数: |
2054 次 |
| 最近记录: |