学习样式表的目的:可以设计出好看的控件。(比如可以给一些按钮设计成好看的图片)

  QT 样式表的思想很大程度上是来自于HTML的层叠式样式表(CSS),通过调用QWidget->setStyleSheet()或者QApplication->setStyleSheet(),你可以为一个独立的子部件、整个窗口,甚至是整个应用程序指定一个样式表。

  样式表的语法基础:

  QT样式表与CSS的语法规则几乎完全相同。

  一个样式表由一系列的样式规则构成,每个样式规则都有着下面的形式;

  selector {  attribute: value  }

选择器:(selector )部分通常是一个类名(例如QComboBox),当然也还有其他的语法形式。

属性(attribute)部分是一个样式表属性的名字,值(value  )部分是赋给该属性的值。

为了使用上的方便,我们还可以使用一种简化形式:

selector1, selector2, ...,  selectorM {
attribute1: value1;
attribute2: value2;
attribute3: value3;
.......
attributeN: valueN;
}

这种简化方式可以同时为与M个选择器相匹配的部件设置N种属性。例如:

QChecked,QComboBox, QSpinBox{
color :red;
background-color :white;
font :bold;
}

示列代码如下:

#include "widget.h"
#include "ui_widget.h" Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this); //功能:改变控件的背景色
this->setStyleSheet("QLabel{color:rgb(0,255,255);"
"background-color:red;"
"}"); /* 功能:将控件背景换为图片
* "background-image:url(://res/1.jpg);"不可以伸缩,
*
* "border-image:url(://res/1.jpg);" 可以伸缩,更加的实用
*
* "border-image:url(://res/1.jpg) 4 4 4 4 stretch stretch;"可以实现对图片的裁剪
*/ ui->label_2->setStyleSheet("QLabel{color:rgb(0,255,255);"
"background-color:blue;"
// "background-image:url(://res/1.jpg);"
// "border-image:url(://res/1.jpg);"
"border-image:url(://res/1.jpg) 4 4 4 4 stretch stretch;"
"}"); //处理 伪状态
/* 功能:当鼠标进入控件的区域内是改变背景图
*
* 部件的外观可以按照用户界面元素状态的不同来分别定义,这在样式表中被称为“伪状态”。
* 例如:如果我们想在一个 push button在被按下的时候具有sunken的外观,我们可以指定一个叫做:pressed的伪状态。
*
*/ ui->pushButton->setStyleSheet("QPushButton{"
"border: 2px outset green;"
"border-image:url(://res/1.jpg);"
"}"
"QPushButton:hover{"
"border-image:url(://res/2.png);"
"}" ); } Widget::~Widget()
{
delete ui;
}

类似"QPushButton:hover{" "border-image:url(://res/2.png);" "}"中的hover伪状态列表还有如下:

  伪状态    描述

:checked  button部件被选中

:disabled  部件被选中

:enable    部件被启用

:focus    部件获得焦点

:hover    鼠标位于部件上

:indeterminate  checked或radiobutton被部分选中

:off     部件可以切换,且处于off状态

:on     部件可以切换,且处于on 状态

:pressed  部件被鼠标按下

:unchecked   button部件未被选中

下面两张图是运行显示图:

图一鼠标没有位于button部件上,图二是鼠标位于button上

图一:

        

图二:

        

到此为止,QT的样式表的学习就先告一段落了。运行的结果也是可以的。

QT +样式表的更多相关文章

  1. 通过Qt样式表定制程序外观(比较通俗易懂)

    1. 何为Qt样式表[喝小酒的网摘]http://blog.hehehehehe.cn/a/10270.htm2. 样式表语法基础3. 方箱模型4. 前景与背景5. 创建可缩放样式6. 控制大小7. ...

  2. 【转】QT样式表 (QStyleSheet)

    作者:刘旭晖 Raymond 转载请注明出处Email:colorant@163.comBLOG:http://blog.csdn.net/colorant/ 除了子类化Style类,使用QT样式表( ...

  3. Qt样式表使用注意项

    Qt样式表使用注意项 <1>.StyleSheet的使用StyleSheet文件的默认后缀名为qss,可以通过命令行参数-stylesheet filename.qss来设置样式表,也可以 ...

  4. Qt样式表的使用

    Qt中可以灵活的使用层叠样式表(CSS),其语法和CSS很相似.因为HTML CSS的灵活性,所以可以很方便的为QT界面设计自己需要的外观.除了子类化Style类,使用QT样式表(QStyleShee ...

  5. QT样式表

    QT样式表 一.QT样式表简介 1.QT样式表简介 QSS的主要功能是使界面的表现与界面的元素分离,使得设计皮肤与界面控件分离的软件成为可能. QT样式表是允许用户定制widgets组件外观的强大机制 ...

  6. QT 样式表基础知识

    1. 何为Qt样式表2. 样式表语法基础3. 方箱模型4. 前景与背景5. 创建可缩放样式6. 控制大小7. 处理伪状态8. 使用子部件定义微观样式 8.1. 相对定位    8.2. 绝对定位 摘要 ...

  7. qt 样式表基本用法

    Qt样式表 QT样式表参考CSS层叠样式表设计,不同之处在于QT样式表应用于Widget世界. 可以使用QApplication::setStyleSheet()函数设置到整个应用程序上,也可以使用Q ...

  8. Qt样式表之三:实现按钮三态效果的三种方法

    按钮的三态,指的是普通态.鼠标的悬停态.按下态.Qt中如果使用的是默认按钮,三态的效果是有的,鼠标放上去会变色,点击的时候有凹陷的效果. 但是如果自定义按钮实现三态效果有三种方法,一种是设置背景图,主 ...

  9. Qt样式表之二:QSS语法及常用样式

    一.简述 Qt样式表(以下统称QSS)的术语和语法规则几乎和CSS相同.如果你熟悉CSS,可以快速浏览以下内容.不熟悉的话可以先去W3School - CSS或者本人的CSS博客随笔简单了解一下. 在 ...

随机推荐

  1. FLINK源代码调试方式

    此文已由作者岳猛授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 第一种,直接通过IDEA WINDOWS调试 前提是Flink所有依赖已经导入,直接在Test中打断点,然后直 ...

  2. IOS按需返回刷新数据

    问题描述 相信大家都会遇到过这种情况: 进入下一页面,并且在下一页面执行某一动作,返回要刷新,没有执行某一动作,返回不刷新.也就是当前页面要实现按照需求刷新页面 实现思路 在当前页面定义个Bool类型 ...

  3. C++函数返回值与引用

    对于函数的返回值,看似简单,但并非如此,比如: int func(int a);该函数会返回一个int型,如果进行一个调用int result=func(3);会发生什么情况? 首先,func将返回值 ...

  4. mysql之SQL入门与提升(一)

    一.基本的增删改查 1.1首先建一张表 DROP TABLE IF EXISTS `websites`;CREATE TABLE `websites` ( `id` int(11) NOT NULL ...

  5. 在Mac上安装Ubuntu14.04虚拟机

    1.在macOS High Sierras上安装VMware for mac 下载地址:VMware Fusion 8.5.1  https://pan.baidu.com/s/1skQ1OyL 2. ...

  6. PAT甲级——1134 Vertex Cover (25 分)

    1134 Vertex Cover (考察散列查找,比较水~) 我先在CSDN上发布的该文章,排版稍好https://blog.csdn.net/weixin_44385565/article/det ...

  7. python异常之EOFError: Ran out of input

    出现该问题一般是由于你在以写模式打开文件后未关闭的情况下又去以读模式操作该文件时报的错误 # coding = utf-8 import pickle #定义一个boy类 class boy(): d ...

  8. [題解](狀壓/水)luogu_P1879玉米田

    大水題然而因為智障的錯誤调了半天......n,m别反着输入啊......內外循環和狀態數都不等價 别的就是記錄一下每一行不可行的點,也狀壓一下,dp的時候判一下即可 #include<bits ...

  9. jq解析xml

    注意:url路径不能用相对路径,需要加入http协议

  10. python 基础(四) 函数

    函数 一.什么是函数? 函数是可以实现一些特定功能的 小方法 或者是小程序 优点: 提高 了代码的后期维护 增加了代码的重复使用率 减少了代码量 提高了代码可读性 二.函数的定义 使用 def关键+函 ...