我需要为不同的QML控件定义一些样式。现在我有以下选择:
-
为每个控件定义样式,如下所示:
TextField { text: "Text input" style: TextFieldStyle { textColor: "white" ... } }
-
在每个 qml 文件中使用它定义样式,如下所示:
Component { id: myStyle TextFieldStyle { textColor: "white" ... } } TextField { text: "Text input" style: myStyle }
问题:如何实现包含所有已使用控件的所有样式的单个 qml 文件,这些文件可以在项目的每个 qml 文件中重用?哪个顶级元素应该在这样的 qml 中?据我了解,项目中的每个qml文件都是组件。但是如果我将顶部元素指定为组件,那么它将在组件中创建组件,对吗?
实现它的最佳方法是什么?
有三件事要做:
- 创建一个包含所有颜色、文本大小的 qml 文件 MyStyles.qml
- 创建简单的、可重用的组件(例如 MyLabelText.qml、MyTextInput.qml)。使用前面定义的样式值。
- 基于此组件构建更高级别的组件(例如 MyLabeledInputField.qml)