【问题标题】:Stylize all control instances in QML application风格化 QML 应用程序中的所有控件实例
【发布时间】:2023-03-10 23:07:02
【问题描述】:

我需要为不同的 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 文件都是组件。但是如果我指定顶部元素为 Component,那么它会在 Component 中创建组件,对吧?

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

【问题讨论】:

  • 您可以在文件末尾添加一个属性,例如。 property Component {...}

标签: styles controls qml


【解决方案1】:

要做三件事:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    • 2018-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-27
    相关资源
    最近更新 更多