QSS(Qt样式表)概念
Qt样式表是一个可以自定义部件外观的十分强大的机制,除了QStyle更改的样式,其他的都可以由QSS修改。由于受到Html的CSS启发,所以叫QSS。
- 代码添加样式表
- ui界面上添加样式表
代码添加样式表:
setStyleSheet() | 添加样式表 |
在ui界面中添加两个控件:pushButton 和lineEdit
修改两个部件的背景颜色:
ui->pushButton->setStyleSheet("background:blue");ui->lineEdit->setStyleSheet("background:yellow");
修改同一类控件的方法:
格式为: 控件类名 { 内容 }
QPusgButton{background:blue}
QLabel{background:yellow}
ui界面中的使用:
右键点击对象,点击改变样式表
可以根据上面的选项添加内容:
Qt样式表的语法:
一:样式规则
每个样式由选择器和声明组成
- 选择器可以有多个用,隔开
- 样式表可以不区分大小写: color Color COLOR 都可以使用,但类名、对象名和Qt属性名区分大小写
- 样式中的属性用;隔开
QPushButton {color:red}
- QPushButton为选择器
- {color:red} 声明
- color为属性
- red为值
QPushButton
{
color:red//等价于Color:red COlor:rad 例如color,background等不区分大小写
}QPushButton,QLabel,QLineEdit//多个选择器用,隔开
{
color:red;//多个的话用;隔开
background-color:white
}
二:选择器的类型
选择器 | 示例 | 说明 |
通用选择器 | * | 匹配所有部件 |
类型选择器 | QPushButton | 匹配所有QPushButton实例和它的所有子类 |
属性选择器 | QPushButton[flat="false"] | 匹配QPushButton的属性flat为false的实例 |
类选择器 | .QPushButton | 匹配所有QPushButton实例,但不包含它的子类 |
ID选择器 | QPushButton#button | 匹配QPushButton中名为button的实例 |
后代选择器 | QDialog QPushButton | 匹配所有QPushButton实例,但必须为QDialog的子孙部件 |
孩子选择器 | QDialog >QPushButton | 匹配所有QPushButton实例,但必须为QDialog的直接子部件 |
三:子控件
QComboBox::drop-down{.....}
- drop-down 代表上下箭头
- 使用::来连接子控件
在帮助文档中搜索 Qt Style Sheets Reference 搜索更多子控件 |
四:伪状态
常用的伪状态:
:checked | 该项目已选中 |
:unchecked | 该项目未选中 |
:disabled | 该项目已禁用 |
:editable | QComboBox可编辑 |
:edit-focus | 具有编辑焦点 |
:focus | 输入焦点 |
:hover | 鼠标悬停在项目上 |
:read-only | 只读 |
:pressed | 鼠标按下 |
- 伪状态:在放在选择器之后用:隔开
- 伪状态可以使用 !来表示否定
- 可以使用多个伪状态(与的效果) :hover:pressed()
- 用,连接可以达到(或的效果)
- 伪状态可以和子控件一起使用
QPushButton:hover//鼠标悬停
{
color:red
}
QPushButton:!hover//鼠标不悬停
{
color:red
}
QPushButton:hover:preassed//鼠标悬停且鼠标点击
{
color:red
}
QPushButton:hover,QPushButton:pressed//鼠标悬停或鼠标点击
{
color:red
}
QComboBox::drop-down:pressed//子控件和鼠标悬停
{
color:red
}
五:冲突的解决
解决方法为:
- 特殊的选择器优先
- 有伪装比没伪装优先
- 特殊性相同,后出现的优先
- 当父类和本身都有样式表并有冲突时,优先使用本身的样式表
六:继承关系
使用样式表时,部件并不会自动从父部件继承字体和颜色设置
想要继承到子部件需要这样设置样式表。
假设 QPushButton是QGroupBox的一个子部件//这样的话颜色会设置到所有子部件
//注意*前面有一个空格
QGroupBox,QGroupBox *
{
color:red;
}
七:设置QObject属性
在Qt4.3之后,任何可设计的Q_PROPERTY都可以使用"qproperty-属性名称”语法来设计样式表。
QPushButton{qproperty-pixmap:url(.....)}
Qlabel{qproperty-iconSize:20px 20px;}
QSS(Qt样式表)概念相关推荐
- Qt样式表之二:QSS语法及常用样式
一.简述 Qt样式表(以下统称QSS)的术语和语法规则几乎和CSS相同.如果你熟悉CSS,可以快速浏览以下内容.不熟悉的话可以先去W3School - CSS或者本人的CSS博客随笔简单了解一下. 在 ...
- Qt样式表之 QSS 语法介绍;QLineEdit、
内容来自Qt样式表之 QSS 语法介绍-3YL的博客 Qt样式表是一个可以自定义部件外观的十分强大的机制,可以用来美化部件.Qt样式表的概念.术语和语法都受到了HTML的层叠样式表(Cascading ...
- Qt 样式表之QSS
前言 最近想给程序做个换皮肤的功能,于是想起了用 QSS.QSS 这个东西也算是老古董了,博主刚工作那会就有接触过,但是没有深入去了解,趁着这一次机会来学习一下.网上翻阅了一些资料,结合 Qt 的官方 ...
- qt 样式表 qss
Qt样式表是一个可以自定义部件外观的十分强大的机制﹐除了那些能够通过子类化QStyle更改的外观,其余的都可以使用Qt样式表来美化. 实现办法:调用setStyleSheet 函数,其中styleSh ...
- qt样式表设置边框_QT样式表
QT样式表 一.QT样式表简介 1.QT样式表简介 QSS的主要功能是使界面的表现与界面的元素分离,使得设计皮肤与界面控件分离的软件成为可能. QT样式表是允许用户定制widgets组件外观的强大机制 ...
- 【Qt】Qt样式表总结(一):选择器
官方资料 https://blog.csdn.net/u010168781/article/details/81868523 注释 qss文件中使用:/**/ 来注释 样式规则 样式表由样式规则序列组 ...
- Qt Style Sheets(qt样式表)
我认为qt样式表对于专注于ui交互的人,其在qt的地位不亚于信号与槽的地位.通过qt样式表可以展示绝大部分你可以想象得到的风格. qt样式表的使用是先将要特例化的样式建立在后缀qss的文件中,在程序启 ...
- [Qt教程] 第45篇 进阶(五)Qt样式表
[Qt教程] 第45篇 进阶(五)Qt样式表 楼主 发表于 2013-9-13 15:43:55 | 查看: 329| 回复: 1 Qt样式表 版权声明 该文章原创于Qter开源社区 导语 一个完善 ...
- Qt样式表之一:Qt样式表和盒子模型介绍
一.Qt样式表介绍 Qt样式表是一个可以自定义部件外观的十分强大的机制,可以用来美化部件.Qt样式表的概念.术语和语法都受到了HTML的层叠样式表(Cascading Style Sheets, CS ...
- QT样式表(QStyleSheet)
QT样式表 (QStyleSheet) 作者:刘旭晖 Raymond 转载请注明出处 Email:colorant@163.com BLOG:http://blog.csdn.net/colorant ...
最新文章
- python将一个json字典转换为一个python对象
- 风云编程python-python网络编程(一)
- 透彻理解Socket网络编程
- redis的hGetAll函数的性能问题
- 添加按钮图标并且当点击或者悬浮上面出现不同效果的代码
- intellij 常用设置
- 基于消息队列 RocketMQ 的大型分布式应用上云最佳实践
- 大数据在2017年发展的8个预测
- “AI女神”李飞飞:如果我获诺贝尔奖,我一定以中国人身份去领奖
- 使用RQShineLabel
- 基于JAVA+SpringMVC+Mybatis+MYSQL的在线考试系统
- 在线计算一周的开始结束时间
- SharePoint 用户配置文件服务
- LabVIEW在Windows10下调出软键盘的说明与例程
- python 文字生成图片
- mysql 唯一记录_在数据库中能够唯一地标识一个记录被称为 MySQL数据库使用教程...
- Codeforces Round #384 B. Chloe and the sequence
- Java相互关注_java --关注/取消关注
- Windows10永久关闭系统更新
- 【Unity】在Unity中实现扫描二维码 生成二维码功能