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

  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. Weekly Contest 111-------->942. DI String Match

    Given a string S that only contains "I" (increase) or "D" (decrease), let N = S. ...

  2. bzoj 2039: [2009国家集训队]employ人员雇佣【最小割】

    一开始在https://www.cnblogs.com/lokiii/p/10770919.html基础上连(i,j,b[i][j])建了个极丑的图T掉了--把dinic换成isap勉强能卡过 首先因 ...

  3. __str__,__repr__

    目录 __str__ __repr__ __str__ 打印时触发 class Foo: pass obj = Foo() print(obj) <__main__.Foo object at ...

  4. C# CSV文件的导入导出以及datatable转化csv

    1.csv文件写入操作 首先,创建datatable对象: DataTable dt = new DataTable(); 添加列: dt.Columns.Add("name", ...

  5. ubuntu 安装R 语言

    我个人的环境是 ubuntu 12.04 64 位桌面版. 我自己在安装R 语言时,发现它依赖的库真不是一般的多,所以我在这里简单记录一下我整个安装过程 首先你需要安装 apt-get install ...

  6. rpm、yum(转)

    rpm http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/08/2203153.html yum http://www.cnblogs ...

  7. mysql8必知必会7 连接 内连接 外连接 交叉连接

    /* 2 需求:建立产品和分类表 1.查询每种分类的产品数量,没有产品的分类也要统计.(cname,quantity) 2.根据分类名称查询分类中的所有产品 */ -- --------------- ...

  8. PostgreSQL-11-WITH语句

    1.WITH语句原理:通用表表达式(Common Table Expressions)/CTEs,在大型查询中的辅助语句 WITH name_for_summary_data AS ( SELECT ...

  9. redis开发小结

    随着缓存在web服务中用的越来越广泛,redis可以说成为了目前最流行的NoSQL数据库!redis与memcached最大的不同在于redis支持更多的数据类型,包括string.hash.list ...

  10. FTP任务(重点看断点续传)

    一.FTP任务目录: 1. 多用户同时登陆:     socketserver 2. 用户登陆,加密认证: md5加密 3. 上传/下载文件,保证文件一致性:md5摘要 4. 传输过程中现实进度条 5 ...