博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Qt][翻译]Qt Style Sheets内容学习-1
阅读量:5810 次
发布时间:2019-06-18

本文共 1558 字,大约阅读时间需要 5 分钟。

0:翻译来源:

翻译起因:最近做一个项目,后台数据处理部分已经完成,需要定制前端GUI的风格,前两天一直是边写代码,边网上查!比较麻烦的是查到的内容比较零散,于是想从Qt官网看下系统一点的教程,边翻译边学吧!也顺便造福一下网友!

导言

Qt Style Sheets(QSS)是一个强大的工具,它使你可以自己定义部件(widgets)的外观,当然我们也可以通过子类化QStyle实现自定义部件外观的功能。如果你学过HTML编程中的CSS,你就会发现Qt Style Sheets的概念、术语和语法深受 CSS的启发,但是QT把QSS这个强大的工具应用于整个widgets的世界。

内容目录:

  • 1:概览

  • 2:QSS 的语法

  • 3:在Qt Designer中使用QSS

  • 4:使用QSS自定义widgets的外观

  • 5:QSS参考手册

  • 6:QSS的使用例子

1:概览

在代码模式下,QSS的设置可以通过调用QApplication::setStyleSheet() 函数,这个函数的作用范围是整个应用程序,当然我们也可调用QWidget::setStyleSheet()函数,仅仅作用于特定的widget对象。这里就会出现调用多个QSS的情况,Qt会根据就近原则进行样式的匹配,子类自己设置过的样式,就用自己的样式,不会考虑父类是否设置过!只有当子类没有设置过自己的样式时,才会使用父类的样式。学过CSS的同学应该知道我在说什么!


下面是一个小例子:

例子中qss指定了所有QLineEdit类型的对象的背景都会是黄色,所有QCheckBox类型的对象的文字颜色都会是红色。

QLineEdit     { background: yellow }QCheckBox     { color: red }

上面这种方式的风格定制要比使用QPalette强大很多。例如,你可以尝试使用QPalette::Button的方法来设置QPushButton的颜色为红色,但是这不能保证没有的情况下都能正常工作,因为在不同的操作系统下,部件的style是被操作系统的主题控制器严格限制的。(说白了QPalette::Button这种方式通用性不好)


有了QSS就好了,使用QPalette来设置style时非常困难或是不可能的事,现在QSS可以轻松搞定了。如果你还在找寻强制设置close buttons或check boxs的背景是黄色,文字是红色的方法,那么QSS就是你要找的答案。


使用了QSS的widget的显示效果非常好,和当前系统的风格也会比较搭(老外好我废话)。任何QSS的设置都会产生效果,不像使用QPalette时,QSS提供的效果是可以得到保证的!(和上面说的一样,建议你使用QSS)。此外Qt Designer中已经集成了设置QSS的方法,这样非常方便设置好效果后马上可以看到widgets的表现。


QSS也可以为你的应用程序提供非常不一样的外观和感受,而不需要使用QStyle的子类。例如,你可以对radio buttons和check boxs使用任意的背景图片,从而让他们看起来更显眼。如果不使用QSS,你就需要子类化一些style 类才能达到效果,例如子类化中需要重写style hint。使用QSS后的效果图如下

图片描述


当QSS的设置激活后,QStyle返回的是一个经常包装后的QWidget::sytle()函数,该函数中包装了QSS设置的”style sheet”,而不是与具体操作系统有关的style。部件在被绘制时,优先使用QWidget::sytle()函数中包含的sytle,只有该函数中没有设置的style,才会调用底层与平台相关的style。


下接第二部分:”2:QSS 的语法“.......

转载地址:http://qhjbx.baihongyu.com/

你可能感兴趣的文章
struts1——静态ActionForm与动态ActionForm
查看>>
七大关键数据 移动安全迎来历史转折点
查看>>
在AngularJS中学习javascript的new function意义及this作用域的生成过程
查看>>
盘点物联网网关现有联网技术及应用场景
查看>>
网络钓鱼大讲堂 Part3 | 网络钓鱼攻击向量介绍
查看>>
阿里云与Intel联合发布加密计算,亚洲首个云上“芯片级”数据保护
查看>>
1、下载安装scala编译器(可以理解为scala的jdk),地址:http://www.scala
查看>>
mui 总结2--新建第一个app项目
查看>>
nginx的lua api
查看>>
考研太苦逼没坚持下来!看苑老师视频有点上头
查看>>
HCNA——RIP的路由汇总
查看>>
zabbix监控php状态(四)
查看>>
定时任务的创建
查看>>
实战Django:小型CMS Part2
查看>>
原创]windows server 2012 AD架构试验系列 – 16更改DC计算机名
查看>>
统治世界的十大算法
查看>>
linux svn安装和配置
查看>>
SSH中调用另一action的方法(chain,redirect)
查看>>
数据库基础
查看>>
表格排序
查看>>