当前位置: 首页 > news >正文

QML Universal样式

Qt Quick Controls 2 的 Universal 风格实现了 Microsoft Fluent Design 规范,提供适合 Windows 平台的 UI 组件。

基本属性

全局属性(通过 Universal 对象访问)

属性类型默认值描述
themeenumUniversal.Light主题风格 (Light/Dark/System)
accentcolor"#0078D7"强调色 (Windows 蓝)
foregroundcolor根据主题自动计算前景色
backgroundcolor根据主题自动计算背景色
fontFont系统字体全局字体设置

组件通用属性

属性类型描述
Universal.accentcolor组件强调色覆盖
Universal.foregroundcolor组件前景色覆盖
Universal.backgroundcolor组件背景色覆盖

常用方法

方法参数描述
Universal.color()type (enum)获取主题颜色

颜色类型枚举

qml

Universal.Accent
Universal.Background
Universal.Foreground
Universal.ThemeDark
Universal.ThemeLight

信号

信号描述
Universal.themeChanged()主题变化时触发
Universal.accentChanged()强调色变化时触发

基础使用示例

qml

import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Controls.Universal 2.15ApplicationWindow {Universal.theme: Universal.DarkUniversal.accent: Universal.color(Universal.Orange)Button {text: "Universal Button"Universal.foreground: "white"}
}

组件样式定制

按钮样式

qml

Button {text: "Fluent Button"Universal.foreground: Universal.accentUniversal.background: "transparent"
}

文本字段样式

qml

TextField {placeholderText: "Universal Field"Universal.accent: Universal.color(Universal.Green)
}

导航视图

qml

Pane {Universal.background: Universal.theme === Universal.Light ? "#f3f3f3" : "#202020"
}

主题切换示例

qml

Button {text: "Toggle Theme"onClicked: Universal.theme = Universal.theme === Universal.Light ? Universal.Dark : Universal.Light
}ComboBox {model: ["Blue", "Green", "Red", "Orange"]onActivated: Universal.accent = Qt.color(model[index])
}

完整组件示例

qml

import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Controls.Universal 2.15ApplicationWindow {width: 400height: 600visible: truetitle: "Universal Demo"Universal.theme: Universal.SystemUniversal.accent: Universal.CobaltColumn {spacing: 20anchors.centerIn: parentButton {text: "Flat Button"Universal.foreground: Universal.accent}Slider {width: 200Universal.accent: Universal.Emerald}Switch {text: "Universal Switch"Universal.foreground: Universal.Red}ProgressBar {width: 200value: 0.6Universal.accent: Universal.Violet}}
}

颜色参考表

颜色名称示例值描述
Lime#a4c400Windows 特色颜色
Green#60a917
Emerald#008a00
Teal#00aba9
Cyan#1ba1e2
Cobalt#0050ef
Indigo#6a00ff
Violet#aa00ff
Pink#f472d0
Magenta#d80073
Crimson#a20025
Red#e51400
Orange#fa6800
Amber#f0a30a
Yellow#e3c800
Brown#825a2c
Olive#6d8764
Steel#647687
Mauve#76608a
Taupe#87794e

与 Material 风格的主要区别

  1. 设计语言

    • Universal 遵循 Fluent Design (Microsoft)

    • Material 遵循 Material Design (Google)

  2. 默认交互效果

    • Universal 使用更微妙的动画和阴影

    • Material 使用更明显的波纹效果

  3. 颜色系统

    • Universal 使用 Windows 特色颜色集

    • Material 使用 Google 标准颜色集

  4. 组件样式

    • Universal 控件边框更锐利

    • Material 控件圆角更明显

如需进一步了解具体控件的 Universal 样式属性(如 ListViewMenu),可查阅 Qt 官方文档。 

http://www.xdnf.cn/news/50275.html

相关文章:

  • 在 Debian 12 中恢复被删除的 smb.conf 配置文件
  • Python基础总结(八)之循环语句
  • 【RabbitMQ | 第2篇】RabbitMQ 控制台实现消息路由 + 数据隔离
  • 本地化部署ASR服务程序:以FastASR为例
  • 使用 NEAT 进化智能体解决 Gymnasium 强化学习环境
  • 通过 WebSocket 接收和播放 WSS 协议视频流
  • Transformers是一种基于自注意力机制的神经网络模型
  • 王博:影视领域的多元创作先锋,以卓越才华开启新篇章
  • Java——类和对象
  • Nacos深度剖析与实践应用之-配置中心
  • RenderStage::drawInner
  • Vue如何实现样式隔离
  • 【Python笔记 01】变量、标识符
  • C++每周一篇
  • 零点、驻点、拐点、极值点、最值点的定义、几何意义、求解方法
  • MACOS 中聚焦使用技巧
  • 云效部署实现Java项目自动化部署图解
  • 基于SpringBoot+Vue实现的旅游景点预约平台功能一
  • Dijkstra 算法入门笔记 (适用于算法竞赛初学者) - C++ 代码版
  • 与cozi人工智能类似的产品有哪些以及它们的优缺点
  • P8512 [Ynoi Easy Round 2021] TEST_152 Solution
  • Java基础语法
  • 坐标轴刻度QCPAxisTicker
  • Web3.0热门领域NFT项目实战课程
  • 使用virtualbox的HostOnly建立共享网络-实现虚拟机上网
  • Function calling LLMs 的 MCP:AI开发的双剑合璧
  • 访问”和“初始化本质区别以及C++静态成员变量定义位置详解
  • 【Rust 精进之路之第9篇-所有权·核心】规则与移动 (Move):Rust 内存安全基石详解
  • Go语言中的sync.Map与并发安全数据结构完全指南
  • Linux:文件系统