自定义控件样式

请在Qt帮助索引中输入Customizing a Control进行查看

不过实际用下来感觉除非你想自己实现一套效果复杂的UI或是创造一个全新控件,比如:给UI添加模糊、虚化等ShaderEffect效果。不然不推荐用这个。比如本人就是想把CheckBox的大小改小,同时不改变显示样式,这个就很难办到。

系统自带的几种主题风格

  1. Default Style
  2. Fusion Style
  3. Imagine Style
  4. Material Style
  5. Universal Style

    其中Imagine Style是使用图片定制风格,图片需要按照指定的命名来放置,具体操作请看文档:

    http://doc.qt.io/qt-5/qtquickcontrols2-imagine.html
在c++中使用QQuickStyle
QQuickStyle::setStyle("Material");

具体内容请在帮助索引中搜索 QQuickStyle

命令行中设置
./app -style material
在Qt的环境变量中设置
QT_QUICK_CONTROLS_STYLE=universal ./app
使用配置文件
[Controls]
Style=Material

官方的gallery案例用的是这种。

网上有个哥们用的是:

if (sty == "mat") {
qputenv("QT_QUICK_CONTROLS_CONF", ":/qtquickcontrols2material.conf");
} else {
qputenv("QT_QUICK_CONTROLS_CONF", ":/qtquickcontrols2universal.conf");
}

本人用的是gallery案例中的方式,感觉通过设置环境变量来指定对应的conf不太灵活,所以上述方式仅供参考。

想要看懂conf文件需要看以下两篇文档

Qt Quick Controls 2 Configuration File

文档:http://doc.qt.io/qt-5/qtquickcontrols2-configuration.html

在默认情况下将文件放置于:/qtquickcontrols2.conf(也就是根目录)就会生效(需要设置QQuickStyle)

Controls Section

Style:定义全局控件样式

XXXX Section

对对应的style进行设置

Font Configuration

设置字体,有以下几个属性:

  1. Family
  2. PointSize
  3. PixelSize
  4. StyleHint
  5. Weight
  6. Style
Palette Configuration

Palette我不太清楚是干什么的

Material Style

文档:http://doc.qt.io/qt-5/qtquickcontrols2-material.html#material-theme-attached-prop

你可以单独给某一些控件设置style,以下是对应的属性:

accent
Button {
text: qsTr("Button")
highlighted: true
Material.accent: Material.Orange
}
background
Button {
text: qsTr("Button")
highlighted: true
Material.background: Material.Teal
}
elevation

控制阴影的属性

Pane {
width: 120
height: 120 Material.elevation: 6 Label {
text: qsTr("I'm a card!")
anchors.centerIn: parent
}
}
foreground
Button {
text: qsTr("Button")
Material.foreground: Material.Pink
}
primary
theme

三个可选项:

  1. Material.Light
  2. Material.Dark
  3. Material.System
Pane {
Material.theme: Material.Dark Button {
text: qsTr("Button")
}
}

自定义主题

文档:http://doc.qt.io/qt-5/qtquickcontrols2-customize.html#creating-a-custom-style

推荐:http://www.cnblogs.com/Fuss/archive/2015/03/20/4353698.html

代码没怎么看,Control用的是1.0,可以作为参考,Github上有关这种UI定制的代码还是比较多,建议先去知乎搜索 “请问有哪些优质又开源的qml应用”

最新文章

  1. Android 绘制view的小知识点
  2. RabbitMQ原理与相关操作(二)
  3. Ajax实现定时刷新页面
  4. Laplacian算子
  5. Python::OS 模块 -- 简介
  6. 傅里叶:有关FFT,DFT与蝴蝶操作(转 重要!!!!重要!!!!真的很重要!!!!)
  7. iOSpush过后返回多级界面
  8. 第一次,触碰Web App项目,栽过的那些坑。
  9. [Session] SessionHelper2---C#关于Session高级操作帮助类 (转载)
  10. 在 Android 中调用二进制可执行程序(native executable )
  11. 教程,Python图片转字符堆叠图
  12. HTTP请求过程-域名解析和TCP三次握手建立链接
  13. java -ui自动化初体验
  14. Curve 曲线 工具
  15. P4070 [SDOI2016]生成魔咒
  16. Android 使用easeui 3.0 集成环信即时通讯 我踩过的坑
  17. chrome浏览器直接打印 - z
  18. C# 文本转语音,在语音播放过程中停止语音
  19. css points
  20. shell命令工作总结

热门文章

  1. 表达式语言 Expression Language
  2. 编辑方法分享之如何编辑PDF文件内容
  3. 通过自定义比较器排序(C#版)
  4. ConfigurationManager 类的使用
  5. 步步为营-77-Ajax简介
  6. 史上最简单的SpringCloud教程 | 第五篇: 路由网关(zuul)
  7. IDEA导入JAR的源代码
  8. XML使用与总结
  9. flanneld,flannel和cni逐步深入
  10. sed 详解【转】