之前完成的QT程序完成逻辑控制后,界面全都使用图片填充的方式来做美化,但是使用到的组件看上去很丑,因此上网简单学习之后做总结如下:(之前也未学习过CSS等知识属于纯小白,如有错误,不吝赐教)。

1.新建工程(略)

新建一个工程用于本次demo的学习。使用的是qweight,并且在文件目录内新建文本,重命名为qss.qss。

2.添加资源文件并读取QSS文件

新建资源文件,并将刚新建的QSS文件加入到目录中。

之后在weight构造函数里添加如下代码:

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QFile file(":/qss.qss");file.open(QFile::ReadOnly);if(file.isOpen()){QString styleSheet = QLatin1String(file.readAll());qApp->setStyleSheet(styleSheet);file.close();qDebug() << "success";}else{qDebug()<< "error";}
}

头文件里需要引入QFile和QDebug。使用QFile打开qss文件,如果打开成功,使用qstring读文件中的内容,用qApp->setStyleSheet解析qss文件。运行后控制台打印success第一步就成功啦。

3.qss文件编写验证

现在ui中添加如下组件方便后续进行qss功能验证:

编译运行后效果如下:

在qss.qss文件中添加如下代码:

*{
background-color: rgb(80, 80, 80);
}

再次编译运行后:

至此成功使用qss文件改变ui界面就完成啦。至于其他的qss所能使用的功能可以查阅相关手册。

另附其他一些简单用法:

qss文件(添加一些按钮点选的样式改变)

*{
background-color: rgb(100, 100, 100);
}
#toolBar {
background-color: rgb(25, 25, 25);
}
#toolBar QPushButton{
color: rgb(250, 250, 250);
background-color: transparent;
}
#toolBar QPushButton:hover{
color:rgb(255, 170, 0);
}
#toolBar QPushButton:pressed{
background-color: rgba(255, 255, 255, 80);
}
#toolBar QPushButton#btnClose:hover{
color: rgb(255, 0, 0);
}

使用效果:

注:toolBar为Layout,需要更改该类为QWeight。

最后感谢大佬提供的学习资料:Qt样式表(QSS)Demo:黑色扁平风格_龚建波的博客-CSDN博客_qss样式表demo

QT QSS简单使用相关推荐

  1. 使用Qt绘制一个简约美观的界面 【使用QSS简单美化】(笔记)

    文章目录 使用Qt绘制一个简约美观的界面-使用QSS简单美化 基本控件布局 界面的简单美化 QSS 添加图片 使用Qt绘制一个简约美观的界面-使用QSS简单美化 基本控件布局 以绘制登录界面为例,创建 ...

  2. 【Qt】简单Qt文本查找功能

    00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 程序设计 04. 执行结果 05. 附录 01. 概述 以前都用设计器设计界面,而这次我们用代码实现一个简单的查找对话框. ...

  3. 201105阶段二qt创建简单工程

    目录 一.学习的知识点 qt的安装 qt项目 项目创建 项目例程 二.上课没有听懂或者没有理解的地方 三.当天学习的收获 一.学习的知识点 qt的安装 安装路径尽量不改,或者只修改盘符 https:/ ...

  4. Qt qss 九宫格

    Qt qss 九宫格 QPushButton{     border-image:url(:/button.png) 10 20 30 40;     border-top: 10px transpa ...

  5. QT:QSS自定义QLineEdit实例

    QT:QSS自定义QLineEdit实例 QLineEdit 的框架是使用Box Model.设计的. 要创建带圆角的线编辑,我们可以设置: QLineEdit {border: 2px solid ...

  6. QT实现简单的上位机软件

    最近项目要求写上位机软件,需要实现界面功能和串口读写.界面方面用过MFC(早忘记了),网上查阅资料后发现QT在5.1版本后有自带的串口模块,而且用QT实现简单界面功能很容易上手(也就期末设计随便玩过几 ...

  7. Qt制作简单标签云(上)

    前言:这两天看Qt看到了网络通信这块,就想起了以前想写的一个小项目:标签云(当时不知道这个名,后来查了才知道的).花了一些心思,做了个简易的标签云版本.记录在此. 本项目分以下几个部分进行记录: 1. ...

  8. 第18篇 Qt实现简单五子棋游戏(二)算法说明

    第18篇 Qt实现简单五子棋游戏(二)算法说明 5.算法说明 5.1.画棋盘: void drawChessboard(); 5.2.画棋子:void drawChess(); 5.3.鼠标点击响应: ...

  9. linux qt5.7下打地鼠源程序,QT实现简单打地鼠游戏

    本文实例为大家分享了QT实现简单打地鼠游戏的具体代码,供大家参考,具体内容如下 开发工具:VS2017,qt5.9.8 开发语言:c++ 实现功能: 有若干地鼠洞,每次出现一只地鼠,当击中地鼠后,分数 ...

最新文章

  1. Linux下C语言使用、编译与调试
  2. CentOS 5.5 手动安装 GCC4.6.2
  3. nginx如何处理php请求,Nginx是如何处理HTTP请求的
  4. go语言中的闭包结构
  5. css样式命名规则(仅供参考)
  6. LeetCode求能够装得最多的水
  7. 移动支付批量制卡系统架构
  8. java容器遍历_高效遍历Java容器详解
  9. C++基础10-类和对象之友元函数
  10. win7和xp无线共享网络问题
  11. 关于LAMP配置Let’s Encrypt SSL证书
  12. 360安全路由器外网连内网(端口映射)的设置方法
  13. shader函数整理
  14. linux虚拟机克隆mac地址冲突,虚拟机下linux迁移造成MAC地址异常处理办法(示例代码)...
  15. 为什么游戏需要热更新
  16. codec2中的函数命名后缀vb nb sm
  17. activiti设置和使用启动人;activiti:initiator的作用及其使用
  18. 解决everything只能搜索C盘的问题
  19. Qt Style Sheets指定自定义控件样式
  20. 青藏高原对印度意味着什么呢?

热门文章

  1. Java新特性:Java8函数式接口与Lambda表达式(一)
  2. 11. jdbc 只读连接
  3. 用好ChatGPT之准确分配角色
  4. 软件研发中敏捷开发和迭代开发的异同
  5. vue页面手机端开发总结
  6. 数据结构---归并排序和外部排序
  7. 如何看待【2021年秋招算法岗】灰飞烟灭?
  8. IMWebConf 2017 官网彩蛋解谜
  9. 108个搞笑经典短句(转)
  10. NAT-T:IPsec穿越NAT之道