我需要为不同的 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)
关于styles - 风格化 QML 应用程序中的所有控件实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20718701/