网站首页 > 博客文章 正文
1 QSS介绍
QSS称为QtStyleSheets也就是Qt样式表,它是Qt提供的一种用来自定义控件外观的机制。QSS大量参考了CSS的内容,只不过QSS的功能比CSS要弱很多,体现在选择器要少,可以使用的QSS属性也要少很多,并且并不是所有的属性都可以用在Qt的所有控件上。
CSS,是能够真正做到网页表现与内容分离的一种样式设计语言。相对于传统HTML的表现而言,CSS能够对网页中的对象的位置排版进行像素级的精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,并能够进行初步交互设计,是目前基于文本展示最优秀的表现设计语言。CSS能够根据不同使用者的理解能力,简化或者优化写法,针对各类人群,有较强的易读性。
借用CSS的灵感,Qt也支持Qt自己的CSS,简称QSS。同CSS相似,CSS的主要功能与最终目的都是能使界面的表现与界面的元素分离,即质与形的分离,就如同一个人可以在不同的时候穿上不同的衣服一样,CSS机制的引入,使得设计一种皮肤与界面控件分离的软件成为可能,应用程序也能像web界面那样随意地改变外观。
2 QSS在Qt中的使用办法
2.1 新建QSS文件
1) 在Qt项目文件夹中,“右键”---“新建”---“文本文档”
2) 在文本文档中写入样式表内容
/* 正常状态或者鼠标松开按钮的状态,按钮颜色 */
QPushButton
{
background-color:rgb(240,255,255);
color: rgb(0, 0, 2);
border-style: outset;
border-color: beige;
border-radius: 10px;
}
/* hover按钮悬浮,鼠标悬浮在按钮上的状态,按钮颜色 */
QPushButton:hover
{
background-color:rgb(14, 220, 0);
border-radius: 10px;
color: rgb(0, 0, 0);
}
/* 鼠标按下按钮时的状态,按钮颜色 */
QPushButton:checked
{
background-color:rgb(14, 170, 79);
border-radius: 10px;
color: rgb(255, 255, 0);
}
3) 将文件名后缀名更改为qss,如更改为“myQss.qss”
2.2 新建资源文件
“右键项目”---“添加新文件”,选择“Qt类”---再选择“Qt Resource File”
点击“choose”,可得到
在“名称”中添加资源文件名“qss”,然后点击“下一步”,得到
点击完成,可以看到添加的资源文件如图所示
2.3 新建Prefix为"/"的空文件夹
右键“qss.qrc”---“Add Prefix”
在“Prefix”中添加“/”,指定文件夹名为“/”,然后点击“OK”
2.4 将qss文件加入qrc资源文件中
右键“/”文件夹,点击“添加现有文件”,选择“myQss.qss”
点击“打开”,就将“myQss.qss”文件加入资源文件“qss.qrc”中啦
2.5 创建QFile对象
通过传入路径\文件名的方式创建一个QFile对象,以readonly的方式打开,然后readAll,最后qApp->setStyleSheet就可以使qss生效。
在main.cpp中,添加以下代码:
#include "mainwindow.h"
#include <QApplication>
#include <QFile>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
/*****************************************/
QString qss;
QFile qssFile(":/myQss.qss");
qssFile.open(QFile::ReadOnly);
if(qssFile.isOpen())
{
qss = QLatin1String(qssFile.readAll());
qApp->setStyleSheet(qss);
qssFile.close();
}
/*****************************************/
MainWindow w;
w.show();
return a.exec();
}
3 运行效果
运行程序后,按键后出现绿色背景
点击领取Qt学习资料+视频教程~下方链接
http://docs.qq.com/doc/DUlVwTW1FZlZuWE9G
猜你喜欢
- 2025-01-23 Qt添加图标(qt中添加图片)
- 2025-01-23 Mac上调试QT客户端(qt在mac下开发)
- 2025-01-23 Qt使用教程:指定生成设置(二)(qt如何使用c++)
- 2025-01-23 QT实现简单的上位机软件(基于qt的上位机 开发需要用到哪些内容)
- 2025-01-23 Python Qt GUI设计:UI界面可视化组件、属性概述(基础篇—4)
- 2025-01-23 Qt入门_设计find对话框(qt怎么设置对话框大小固定)
- 2025-01-23 从零开始学Qt(39):QFileDialog对话框的使用
- 2025-01-23 Qt 制作登录对话框(qt制作登录界面)
- 2025-01-23 Qt 窗口部件(qt新窗口)
- 2025-01-23 QT学习:statusBar的使用,创建控件添加到statusBar上面
你 发表评论:
欢迎- 最近发表
-
- 给3D Slicer添加Python第三方插件库
- Python自动化——pytest常用插件详解
- Pycharm下安装MicroPython Tools插件(ESP32开发板)
- IntelliJ IDEA 2025.1.3 发布(idea 2020)
- IDEA+Continue插件+DeepSeek:开发者效率飙升的「三体组合」!
- Cursor:提升Python开发效率的必备IDE及插件安装指南
- 日本旅行时想借厕所、买香烟怎么办?便利商店里能解决大问题!
- 11天!日本史上最长黄金周来了!旅游万金句总结!
- 北川景子&DAIGO缘定1.11 召开记者会宣布结婚
- PIKO‘PPAP’ 洗脑歌登上美国告示牌
- 标签列表
-
- ifneq (61)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)