首页 > 其他分享 >QT样式表使用

QT样式表使用

时间:2023-06-26 17:57:10浏览次数:52  
标签:QT 样式 button background color 样式表 QPushButton 使用 setStyleSheet

https://blog.csdn.net/qq_32348883/article/details/122686832

1.前言

QT使用样式表通常有三种方式:
1. 在UI设计器---Qt Designer 内添加并设置样式;
优点:直观显示。
缺点:样式比较多时,不利于检查样式是否编写错误。同时不可以二次修改,即界面显示完毕后无法通过此方法修改界面的样式,只能靠代码去修改。
  1. 在代码内直接使用样式;
    优点:此种方法很方便,也很快捷。可以随时设置样式,改变样式,根据不同条件设置不同的样式,而不像第一、第三种方法直接设置固定样式。
    缺点:当样式内容较复杂时,不利于查看,同时可能为了编码风格美观需要将样式内容换行等,这样可能会导致样式错误,根本没有效果,导致需要多次调试,浪费不必要的时间。

  2. 将样式添加在文件内,以读取文件的方式来设置样式;
    优点:
    这种方法在界面样式较复杂时,我们在文件中编写样式,内容比较清晰,样式编写格式错误更加明显。同时也便于修改,同时一些文件编辑器能够自动给出样式输入提示,提供高编码效率。
    缺点:
    一般样式表文件都会加载到程序资源文件中,所以这里需要单独加载一个文件。同时跟第一种方法一样,不可以二次修改,当界面显示完毕后,只能靠调用setStyleSheet方法再次修改。

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

2.QPushButton和QToolButton 鼠标普通态、停留态、按下态

以QPushButton为例:

/*按钮普通态*/
QPushButton
{
    /*字体为微软雅黑*/
    font-family:Microsoft Yahei;
    /*字体大小为20点*/
    font-size:20pt;
    /*字体颜色为白色*/    
    color:white;
    /*背景颜色*/  
    background-color:rgb(14 , 150 , 254);
    /*边框圆角半径为8像素*/ 
    border-radius:8px;
}

/按钮停留态/
QPushButton:hover
{
/背景颜色/
background-color:rgb(44 , 137 , 255);
}

/按钮按下态/
QPushButton:pressed
{
/背景颜色/
background-color:rgb(14 , 135 , 228);
/左内边距为3像素,让按下时字向右移动3像素/
padding-left:3px;
/上内边距为3像素,让按下时字向下移动3像素/
padding-top:3px;
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

3.QLabel设置前景色、背景色、字体大小、字体类型

QLabel {
    font-family: "Microsoft YaHei";
    font-size: 14px;
    color: #BDC8E2;
    background-color: #2E3648; 
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

4.QLineEdit边框、背景颜色设置

QLineEdit
{
	border: 1px solid gray; /* 边框 */
	border-radius: 4px;     /* 边框圆角 */
	padding: 0 8px;         /* 内容与边框距离 */
	background: white;      /* 背景颜色 */
	selection-background-color: darkgray; /*所选内容的背景颜色*/
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

5. 窗体背景图片设置

例如: 设置主窗体背景图片为 new_back.png

QWidget#MainWindow
{
    image: url(:/new/prefix/resource/new_back.png);
}
  • 1
  • 2
  • 3
  • 4

附注

  1. 在不改变原有的样式下,添加附加新样式的方式:
void setNewStyleSheet(QString styleSheet)
{
    //获取到原来的样式
     QString oldStyleSheet = this->styleSheet();
     styleSheet += oldStyleSheet;
     this->setStyleSheet(styleSheet);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  1. QPushbutton或者QToolButton 的背景图片自动缩放,自适应按键大小
QPushButton *button = new QPushButton(this);
button->setGeometry(50, 50, 100, 50);
button->setStyleSheet("border-image:url(:/timg.jpg)");
connect(button, &QPushButton::pressed, [=](){
    button->setStyleSheet("border-image:url(:/myico.ico)");}
);
connect(button, &QPushButton::released, [=](){
    button->setStyleSheet("border-image:url(:/timg.jpg)"); }
);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  1. QT工程加载一个样式表
QFile file(":/qss/stylesheet/mysheet.qss");
file.open(QFile::ReadOnly);
QString styleSh = tr(file.readAll());
setStyleSheet(styleSh);
file.close();
  • 1
  • 2
  • 3
  • 4
  • 5
文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux32525 人正在系统学习中

标签:QT,样式,button,background,color,样式表,QPushButton,使用,setStyleSheet
From: https://www.cnblogs.com/mkmkbj/p/17506342.html

相关文章

  • 一个使用simulink搭建的三通道交错并联双向buck-boost变换器。它采用电压外环、三电流
    这是一个使用simulink搭建的三通道交错并联双向buck-boost变换器。它采用电压外环、三电流内环和载波移相120°的控制方式。该变换器在buck模式和boost模式之间切换时,能够实现能量的双向流动,而且不会产生过压和过流问题。交错并联的拓扑结构可以减少电感电流的纹波,减小每相电感的体......
  • 9. 使用JdbcTemplate【从零开始学Spring Boot】
      整体步骤:(1)  在pom.xml加入jdbcTemplate的依赖;(2)  编写DemoDao类,声明为:@Repository,引入JdbcTemplate(3)  编写DemoService类,引入DemoDao进行使用(4)  编写Demo2Controller进行简单测试。 具体操作流程如下: 使用JdbcTemplate类需要加入(如果在JPA已经加入的话,这......
  • 8. 使用JPA保存数据【从零开始学Spring Boot】
    在看这一篇文档的话,需要先配置好JPA–Hibernate。      总体步骤:(1)  创建实体类Demo,如果已经存在,可以忽略。(2)  创建jparepository类操作持久化。(3)  创建service类。(4)  创建restful请求类。(5)  测试 代码如下:com.kfit.test.bean.Demo:package......
  • fiddler的介绍和使用
    一、fiddler工作原理Fiddler是以代理WEB服务器的形式工作的,浏览器与服务器之间通过建立TCP连接以HTTP协议进行通信,浏览器默认通过自己发送HTTP请求到服务器,它使用代理地址:127.0.0.1,端口:8888.当Fiddler开启会自动设置代理,退出的时候它会自动注销代理,这样就不会影响别的......
  • SQL中的distinct的使用方法
    1.distinct含义与使用方法distinct用来查询不重复记录的条数,即用distinct来返回不重复字段的条数(count(distinctid)),其原因是distinct只能返回他的目标字段,而无法返回其他字段。注意事项distinct【查询字段】,必须放在要查询字段的开头,即放在第一个参数;只能在SELECT语句中使......
  • HFS.exe(网络文件服务器)汉化版下载与使用
    下载地址www.123pan.com/s/kW3DVv-QfxJA.html截图文件软件界面浏览器访问界面......
  • python函数的高阶使用
    一:*强制位置传参和/分界线强制位置参数可以使用*进行标记,*后面的参数将成为强制位置参数,它们必须按照位置传递给函数,而不能使用关键字传递。/用于标记位置参数和关键字参数之间的分界线,即/之前的参数只能通过位置传递,/之后的参数可以通过位置或关键字传递。示例1:使......
  • css属性中的 filter 和 backdrop-filter 使用
    filterCSS属性 filter 将模糊或颜色偏移等图形效果应用于元素。滤镜通常用于调整图像、背景和边框的渲染。mdn文档:https://developer.mozilla.org/zh-CN/docs/Web/CSS/filter/*URLtoSVGfilter*/filter:url("filters.svg#filter-id");/*<filter-function>values......
  • MySQL---性能分析工具的使用
     数据库服务器优化的步骤  查看系统性能参数统计sql查询成本:last_query_cost定位执行慢的SQL:慢查询日志 开启慢查询日志查看当前是否开启慢......
  • 使用ffmpeg将rtsp流转流实现h5端播放
    主要实现rtsp转tcp协议视频流播放ffmpeg下载安装(公认业界视频处理大佬)a、官网地址:www.ffmpeg.org/b、gitHub:github.com/FFmpeg/FFmp…c、推荐下载地址:ffmpeg.zeranoe.com/builds/(选择如下图)2.配置ffmpeg环境变量:a、解压缩上一步的ffmpeg文件b、配置环境变量,把ffmpeg下的bin配置......