对 QML 应用程序中的所有控件实例进行样式化



我需要为不同的QML控件定义一些样式。现在我有以下选择:

  1. 为每个控件定义样式,如下所示:

    TextField {
        text: "Text input"
        style: TextFieldStyle {
        textColor: "white"
        ...
        }
    }
    
  2. 在每个 qml 文件中使用它定义样式,如下所示:

    Component {
        id: myStyle
        TextFieldStyle {
        textColor: "white"
        ...
        }
    }
    TextField {
        text: "Text input"
        style: myStyle
    }
    

问题:如何实现包含所有已使用控件的所有样式的单个 qml 文件,这些文件可以在项目的每个 qml 文件中重用?哪个顶级元素应该在这样的 qml 中?据我了解,项目中的每个qml文件都是组件。但是如果我将顶部元素指定为组件,那么它将在组件中创建组件,对吗?

实现它的最佳方法是什么?

有三件事要做:

  1. 创建一个包含所有颜色、文本大小的 qml 文件 MyStyles.qml
  2. 创建简单的、可重用的组件(例如 MyLabelText.qml、MyTextInput.qml)。使用前面定义的样式值。
  3. 基于此组件构建更高级别的组件(例如 MyLabeledInputField.qml)

最新更新