在QML应用程序中样式化所有控件实例

时间:2013-12-21 11:53:40

标签: styles controls 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
    }
    
  3. 问题:如何实现包含所有使用过的控件的所有样式的单个qml文件,这些控件可以在项目的每个qml文件中重用? 哪个顶级元素应该在这样的qml中? 据我所知,项目中的每个qml文件都是Component。但是,如果我将top元素指定为Component,那么它将在Component中创建组件,对吗?

    实施该方法的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

有三件事要做:

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