QT StyleShee

Qt工程实践_01_Qt样式表Qss(什么是QSS;基本语法;setStyleSheet函数;样式表的属性值;利用QtCreate实现样式切换;样式表实现皮肤改变实例) 本篇介绍什么是样式表,讨论如何使用Qt样式表Qss修改应用程序外观,并通过实例进行讲解。 了解HTML的同学都知道,一般在HTML中我们把样式表叫做CSS,在Qt中我们称之为QSS。QSS和CSS并不完全等同,语法完全类似,定义上存在一些差别。 1. 什么是QSS QSS是Qt程序界面中用来设置控件的背景图片、大小、字体颜色、字体类型、按钮状态变化等属性,用于美化UI界面。实现界面和程序的分离,快速切换皮肤。 QSS最大的优点就是简单便捷,我们可以通过它快速实现应用程序的外观界面。 2. QSS的基本语法 阅读详情

QT StyleShee
by  lhzryy1    2011-01-25 15:59:54 
使用setStyleSheet来设置图形界面的外观:
QT Style Sheets是一个很有利的工具,允许定制窗口的外观,
此外还可以用子类QStyle来完成,他的语法很大比重来源于html的CSS,但是适用于窗口
概括:
Style Sheets是文字性的设定,对于整个应用程序可以使用QApplication::setStyleSheet() 或者对应一个窗口可以使用QWidget::setStyleSheet(),如果好几个样式表在不同的层次上设定,
QT将会集合所有的样式表来设定外观,这称作级串联
例如:下面的样式表指定所有的QLineEdit应该用黄色作为他们的背景颜色,所有的核对框应该用红色作为他们的文本颜色
  1. QLineEdit { background: yellow }
  2. QCheckBox { color: red }
复制代码
对于这种定制,样式表比palette调色板更强大,例如使用QPalette::Button role来设定一个按钮为红色可能引起危险
对于单独使用QPalette很难完成的定制,样式表可以指定样式表作用于当前窗口样式顶部,这意味这应用程序讲看起来尽可能的自然,但是任何样式表系统 参数应该考虑,不像QPalette那样,样式表提供检查,如果你设定了一个按钮的背景颜色为红色,你应该确定在所有的平台按钮将会有一个红色的背景,除 此,Qt Designer提供样式表集成环境,使得在不同的窗口样式中更容易看到样式表的效果
此外,样式表可以用来为你的应用程序提供一个出众的外观,不需要使用子类QStyle,例如,可以指定任意的图片为单选按钮和核对按钮,来使它们出众,使 用这个技术,也可以获得辅助的定制,这将使用几个子类,例如指定style hint(样式暗示),可以参看例子 Style Sheet。
当样式表有效时候,使用QWidget::style()可以返回QStyle,
样式表语法:
样式表语法基本和HTML CSS语法一致。
样式表包含了样式规则序列,样式规则有一个<selector>和<declaration>组成,<selector>指定哪些窗口将会被这些规则影响,<declaration>指定哪些属性将会被设定在窗口上,例如
QPushButton{color:red}
在上面的,规则中,QPushButton是<selector>,{color:red}是<declaration>,这个规则指定QPushButton和他的子类将使用红色作为前景颜色,就是字体颜色,并且对大小写没有分别,对于
color,ColoR,COLOR是一样的。
几个<selector>可以同时被列出,使用逗号","来分开各个<selector>,例如:
QPushButton, QLineEdit, QComboBox { color: red }
<declaration>部分是一对 属性:值  对,用{}来括起来,使用分号来分开各个属性,例如
QPushButton { color: red; background-color: white }
可以参看Qt Style Sheets Reference来查看部件以及样式表的属性列表
关于样式表的级联属性
看下面代码的不同
  1. btn1->setStyleSheet("QPushButton{color:red}"); //设定前景颜色,就是字体颜色
  2. btn1->setStyleSheet("QPushButton{background:yellow}"); //设定背景颜色为红色
和
  1. btn1->setStyleSheet("QPushButton{color:red;background:yellow}");
第一个代码只能显示黄色背景,第二个确实红色字体,黄色背景,
所以当设定一个部件时候,要在同一个>setStyleSheet()中完全写出来。
源代码示例:
  1. Dialog::Dialog(QWidget *parent) :
  2.     QDialog(parent),
  3.     ui(new Ui::Dialog)
  4. {
  5.     ui->setupUi(this);
  6.     this->setWindowFlags(this->windowFlags()&Qt::WindowMaximizeButtonHint&Qt::WindowMinimizeButtonHint); //为对话框添加上最大化和最小化按钮
  7. //    layout=new QBoxLayout(this);
  8.     layout1=new QGridLayout(this);
  9.     btn1=new QPushButton(this);
  10.     btn1->setStyleSheet("QPushButton{color:red;background:yellow}"); //设定前景颜色,就是字体颜色
  11. //    btn1->setStyleSheet("QPushButton{background:yellow}");
  12.     btn1->setText("Button1");
  13.     btn2=new QPushButton(this);
  14.     btn2->setStyleSheet("QPushButton{color:red;background-color:rgb(200,155,100)}"); //使用rgb来设定背景颜色
  15.     btn2->setText("Button2");
  16.      btn3=new QPushButton(this);
  17.      btn3->setStyleSheet("QPushButton{background-image:url(image/1.png);background-repeat: repeat-xy;background-position: center;background-attachment: fixed;background-attachment: fixed;background-attachment: fixed;;background-clip: padding}");
  18.      //设定按钮的背景图片,background-repeat可以设定背景图片的重复规则,这里设定仅在xy方向都重复,所以图片会被重复一次
  19.      //background-position用来设定图片的位置,是左(left)还是右(right),还是在中间(center),是上(top)还是底部(bottom)
  20.      //background-attachment用来这定背景图片是否卷动或者和窗口大小相匹配,默认是卷动的
  21.      btn3->setText("Button3");
  22.      btn4=new QPushButton(this);
  23.      btn4->setStyleSheet("QPushButton{border: 3px solid red;border-radius:8px}"); //设定边框宽度以及颜色
  24.      //可以使用border-top,border-right,border-bottom,border-left分别设定按钮的上下左右边框,
  25.      //同样有border-left-color, border-left-style, border-left-width.等分别来设定他们的颜色,样式和宽度
  26.      //border-image用来设定边框的背景图片。
  27.      //border-radius用来设定边框的弧度。可以设定圆角的按钮
  28.      btn4->setText("Button4");
  29.      //字体设定
  30.      //font-family来设定字体所属家族,
  31.      //font-size来设定字体大小
  32.      //font-style来设定字体样式
  33.      //font-weight来设定字体深浅
  34.      //height用来设定其高低
  35.      //selection-color用来设定选中时候的颜色
  36.      edit1=new QLineEdit(this);
  37.      edit1->setStyleSheet("QLineEdit{font: bold italic large /"Times New Roman/";font-size:25px;color:rgb(55,100,255);height:50px;border:4px solid rgb(155,200,33);border-radius:15px;selection-color:pink}");
  38.      //父窗口的设定
  39.      //icon-size来设定图片大小
  40.      this->setWindowIcon(QIcon("image/1.png"));
  41.       this->setStyleSheet("QWidget{background:write url(image/2.png);icon-size:20px 5px}");  //设定整个对话框的背景颜色
  42. //      this->setStyleSheet("QWidget{icon-size:20px 5px}");
  43.     layout1->addWidget(btn1,0,0);
  44.     layout1->addWidget(btn2,0,1);
  45.     layout1->addWidget(btn3,1,0);
  46.     layout1->addWidget(btn4,1,1);
  47.      layout1->addWidget(edit1,2,0);
  48. }

QT中QSS设置的三种方法 什么是QSS QSS称为Qt Style Sheets也就是Qt样式表,它可以应用于Qt部件(Widgets)和绘制元素,以定制和美化用户界面。QSS大量参考了CSS的内容,只不过QSS的功能比CSS要弱很多, 体现在选择器少,可以使用的QSS属性也要少很多,而且并不是所有的属性都可以用在Qt的所有控件上。 二.QSS三种设置方法 方法一: 1.QSS文件示例 方法二: 1.QT程序中直接设置QSS 方法三: 1.在控件界面中直接设置qss 阅读详情

相关推荐

cdh zookeeper未授权访问(安全漏洞)处理

前言: 最近公司在做安全漏洞扫描。发现cdh zookeeper存在未授权访问的问题。 ZooKeeper的节点有5种操作权限: CREATE、READ、WRITE、DELETE、ADMIN 也就是 增、删、改、查、管理权限,这5种权限简写为crwda(即:每个单词的首字符缩写) 注:这5种权限中,delete是指对子节点的删除权限,其它4种权限指对自身节点的操作权限 ZooKeeper的身份的认证有4种方式: world:默认方式,相当于全世界都能访问 auth:代表已经认证通过的..

belialxing的专栏 2447

Qt 样式表之QSS

QSS 简介 QSS 全称为 Qt Style Sheets 也就是 Qt 样式表,它是 Qt 提供的一种用来自定义控件外观的机制。QSS 大量参考了 CSS 的内容,只不过 QSS 的功能比 CSS 要弱很多,体现在选择器要少,可以使用的 QSS 属性也要少很多,并且并不是所有的属性都可以用在 Qt 的所有控件上。 QSS 语法高亮 通过 “工具” -> “选项” 进入设置,通过 “text/css” 快速定位,然后在详情中添加 “*.qss” 即可实现 QSS 文件语法高亮,注意分隔符用 ‘;’

billy的博客 1万+

Codex接入CCSwitch:本地代理与模型路由配置指南

在AI编程工具链中,本地代理与模型路由是连接智能体与模型服务的核心桥梁。Codex作为OpenAI推出的编程智能体,虽然具备强大的仓库理解和自主编码能力,但其默认模型链路固定,导致在多模型切换、内网统一管理及成本控制上存在天然瓶颈。CCSwitch正是为解决这一痛点而生的本地代理工具,它通过OpenAI兼容协议将Codex的请求透明转发至DeepSeek、通义千问等第三方模型服务,使模型切换如同点击按钮般简单。本文从本地代理和模型路由器的基础原理切入,系统讲解Codex与CCSwitch的安装配置、模型ID

weixin_33910460的博客 428

QSS总结以及最近做的Qt项目

什么是QSS QSS称为Qt Style Sheets也就是Qt样式表,它是Qt提供的一种用来自定义控件外观的机制。QSS大量参考了CSS的内容,只不过QSS的功能比CSS要弱很多,体现在选择器要少,可以使用的QSS属性也要少很多,并且并不是所有的属性都可以用在Qt的所有控件上。 QSS在Qt程序中的使用办法 首先将QSS写在文件中,然后利用如下的代码设置QSS: MainW...

3700

PX4无人机-Gazebo仿真实现动态目标追踪的视觉控制方案

本文详细介绍了PX4无人机在Gazebo仿真环境中实现动态目标追踪的视觉控制方案。从PX4与Gazebo仿真环境搭建、动态目标追踪核心技术栈、仿真环境深度定制技巧到追踪算法的优化实践,提供了全面的技术指导和常见问题排查方法,帮助开发者高效实现无人机视觉追踪功能。

weixin_29196315的博客 450

MATLAB实战:利用扫频数据重构系统伯德图的关键步骤

本文详细介绍了如何利用MATLAB处理扫频数据并重构系统伯德图的完整实战流程。内容涵盖数据导入与清洗、增益与相位的精确计算、频率响应数据对象(frd)的构建、数据平滑与插值处理,以及最终生成专业伯德图并进行关键参数(如相位裕度)标注的方法。文章重点解决了从实测“黑盒子”系统数据出发,获取直观频率响应特性曲线的核心问题,为控制系统分析与设计提供了实用指南。

weixin_29098117的博客 398

【QT】QSS美化——基础知识

QSS定制: 介绍了QSS辅助工具、QSS加载方式、QSS选择器、QSS常用属性、QSS伪状态与子控件

Jason的技术探索与分享 4万+

COCOS 3.8 接入高德定位SDK

/微信登录所必须的code。//是否获得code。

八喜互动 1995

QT开发:详解Qt样式表(QSS):美化界面的应用

QT开发:详解Qt样式表(QSS):美化界面的应用

编程技术探索者,分享C/C++、C#、Java、数据库等开发经验,聚焦实战技巧与AI兴趣,助力编程爱好者成长。 7793

csp-j/s

CSP-J/S 是中国计算机学会(CCF)主办的 ‌‌(Certified Software Professional Junior/Senior),是信息学奥赛(NOI)体系的入门级选拔考试,也是国内最具权威性的青少年编程能力认证之一。

gxyxxrYYDS的博客 2029

从ARCore到AICore:揭秘Google如何通过系统级服务推动Android生态创新

本文深入探讨了Google如何通过AICore等系统级服务推动Android生态创新。从ARCore到AICore,Google通过分层解耦策略将AI能力下沉至系统层,实现端侧大模型推理,如Gemini Nano在Pixel 8 Pro中的应用。文章剖析了AICore的技术架构、开发者赋能路径及场景化实践,展示了其在通信、内容创作和生产力工具中的卓越表现。

rust6ferris的博客 545

Qt开发 | qss介绍 | 常用样式 | 控件样式应用 | qss选择器

Qt Style Sheets ,简写是QSS,Qt样式表,用于修改控件外观,美化界面。它类似于前端的CSS(Cascading Style Sheets)但专门用于Qt应用程序。QSS允许开发者通过样式表来控制窗口部件的外观和感觉,而无需修改应用程序的源代码。例如:下面QLabel的样式设置QLabel/*背景色*//*字体颜色,前景色*//*字体类型*//*字体大小*//*我是qss注释*/除了以上样式外,还有很多,qss千变万化,可以写出各种花里胡哨的样式。

zwcslj的博客 6145

把浮点数这件小事讲清楚:ABAP 7.51 里 Open SQL 与 ABAP CDS 的 FLTP 新玩法与避坑指南

ABAP浮点数计算的风险与应对 摘要:ABAP项目中的浮点数(FLTP)在跨平台计算时存在误差风险,同一逻辑在不同数据库平台可能产生细微差异。ABAP 7.51新增了两项关键能力:1)Open SQL和ABAP CDS中可为AVG函数指定结果类型,避免默认返回FLTP;2)ABAP CDS提供FLTP_TO_DEC转换函数。但需注意这些转换仍可能存在平台相关差异,且FLTP_TO_DEC会截断而非四舍五入小数位。开发者在涉及金额、数量等关键业务计算时,应明确数值语义并设计容错机制。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 214

Qt 界面优化(QSS)

Qt 界面优化(QSS)介绍

m0_65558082的博客 3106

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Qt之QSS使用与基本语法

一、QSS介绍 QSS是一种从CSS借鉴过来的机制,用来实现对控件外观的自定义。但是它比CSS功能要弱化一些,有一些属性和选择器,QSS并没有。 Qt中的各个控件可以使用QSS来实现界面的个性化定制、美化,使用起来也是特别方便的。 二、QSS使用与语法 我们接下来以一个简单地例子来,说明怎么使用qss修改界面外观。 1、举个栗子 设置QLineEdit控件背景色为黄色。 qApp->setS...

百里杨的博客 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Qt扫盲-QSS概述

QSS 其实是Qt样式表,Qt样式表是Qt界面的一种强大的机制,除了通过继承QStyle已经可以实现的功能外,它还允许您自定义窗口组件的外观。Qt样式表的概念、术语和语法很大程度上受到HTML层叠样式表(CSS)的启发。功能和CSS的基本一样,大家应该也是有CSS 的基本基础,那写QSS就很容易的。

洪源兄 2075

Qt扫盲-QSS语法概述

QSS也叫Qt样式表,Qt样式表术语和语法规则几乎与HTML CSS的术语和语法规则相同。如果已经了解CSS,那就可能可以快速浏览本节。一、语法规则 QSS 语法非常简单。样式规则由选择器和声明组成。 选择器指定哪些控件受规则影响, 声明指定应该在这个控件设置哪些属性。

洪源兄 3227

Qt使用QSS

QSS称为QtStyleSheets也就是Qt样式表,它是Qt提供的一种用来自定义控件外观的机制。QSS大量参考了CSS的内容,只不过QSS的功能比CSS要弱很多,体现在选择器要少,可以使用的QSS属性也要少很多,并且并不是所有的属性都可以用在Qt的所有控件上。CSS,是能够真正做到网页表现与内容分离的一种样式设计语言。

hw5230的博客 3272

QT——QSS技术

Html中样式表被叫做Css,Qt当中称为Qss,其中的SS是style sheet(样式表),用于设置程序UI界面中控件的背景图片、大小、字体颜色、字体类型、按钮状态变化等属性,美化UI界面,实现界面和程序的分离,可以快速切换皮肤。用于设置程序UI界面中控件的背景图片、大小、字体颜色、字体类型、按钮状态变化等属性,美化UI界面,实现界面和程序的分离,可以快速切换皮肤。

图像学习之旅 938

【QT】QSS使用总结

QSS编写语法 常见问题 1. 继承于Widget的主界面背景图无法显示 需要添加一行代码 再在qss文件中添加以下代码即可,#后跟随的是你的widget名称,替换成自己的即可 2. 大多数无效问题 由于Qss文件没有自动查错的功能,所以常常是输入的句式有问题,导致的无效。 比如以下代码是无效的:#前后不能有空格: 所以这个时候去官方文档查看正确的语法即可。 官方文档:https://doc.qt.io/qt-5/stylesheet-reference.html...

SherylBerg的博客 4547

【QT】史上最全最详细的QSS样式表用法及用例说明

Qt样式表支持各种属性、伪状态和子控件,可以自定义小部件的外观。QSS示例,如何为全局添加QSS样式(全局加载QSS的方法) selector { attribute: value } selector:选择器,如 QWidget、QPushButton、QGroupBox等 attribute:属性,如color、background-color、border、padding等 value:值,与属性对应

瞌睡的博客 8万+

QT QSS简单使用

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

haoyu12123的博客 3500

Qt常用QSS集合

Qt常用QSS集合

m0_60259116的博客 875

Qt之QSS选择器

  选择器决定了style sheet作用于哪些widget,QSS支持CSS2中定义的所有选择器。  QSS的选择器有如下几种:*作为选择器,作用于所有的widget。类名作为选择器,作用于它自己和它的所有子类。 3、类选择器 .类名或.class的属性值作为选择器,作用于它自己,它的子类不受影响。这一点,与类型选择器是有区别的。举例说明: 此时,window窗口和三个按钮的背景都变成灰色,如果只想window的背景为灰色,则使用.类名作为选择器: 如果设置openButton和closeButton的背

韩若熙的博客 6186

Qt之QSS样式表

QSS(Qt Style Sheet)样式表是一种用于描述图形用户界面(GUI)样式的语言。它允许开发者为应用程序的控件定义视觉外观,例如颜色、字体、尺寸和布局等。QSS 样式表的主要目的是提供一种简洁而灵活的方式来美化应用程序的界面,使其具有一致的外观和风格。通过使用 QSS,开发者可以分离界面的样式和功能代码,从而更容易维护和定制界面的外观。QSS 样式表通常以.qss文件的形式保存,其中包含了一系列的样式规则。这些规则使用选择器来指定要应用样式的控件,以及对应的样式属性和值。

编程与实战的博客 2909

Qt的Qss用法

Qss 是一个强大的控件样式表语言,可以帮助我们实现各式各样的自定义控件效果。它可以设置控件属性、子控件属性、样式状态、颜色、图像、动画等。了解 Qss 语法和常用样式属性将能够让你更快速地实现丰富的 Qt 界面效果。

future_ai的博客 2014
上一篇: c/c++ struct union 对齐方式
下一篇: Qt关于滚动条
lixingworkCCC
博客等级 码龄15年 24粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值