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

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

  样式表的语法基础:

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

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

  selector {  attribute: value  }

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

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

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

  1. selector1, selector2, ..., selectorM {
  2. attribute1: value1;
  3. attribute2: value2;
  4. attribute3: value3;
  5. .......
  6. attributeN: valueN;
  7. }

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

  1. QChecked,QComboBox, QSpinBox{
  2. color :red;
  3. background-color :white;
  4. font :bold;
  5. }

示列代码如下:

  1. #include "widget.h"
  2. #include "ui_widget.h"
  3.  
  4. Widget::Widget(QWidget *parent) :
  5. QWidget(parent),
  6. ui(new Ui::Widget)
  7. {
  8. ui->setupUi(this);
  9.  
  10. //功能:改变控件的背景色
  11. this->setStyleSheet("QLabel{color:rgb(0,255,255);"
  12. "background-color:red;"
  13. "}");
  14.  
  15. /* 功能:将控件背景换为图片
  16. * "background-image:url(://res/1.jpg);"不可以伸缩,
  17. *
  18. * "border-image:url(://res/1.jpg);" 可以伸缩,更加的实用
  19. *
  20. * "border-image:url(://res/1.jpg) 4 4 4 4 stretch stretch;"可以实现对图片的裁剪
  21. */
  22.  
  23. ui->label_2->setStyleSheet("QLabel{color:rgb(0,255,255);"
  24. "background-color:blue;"
  25. // "background-image:url(://res/1.jpg);"
  26. // "border-image:url(://res/1.jpg);"
  27. "border-image:url(://res/1.jpg) 4 4 4 4 stretch stretch;"
  28. "}");
  29.  
  30. //处理 伪状态
  31. /* 功能:当鼠标进入控件的区域内是改变背景图
  32. *
  33. * 部件的外观可以按照用户界面元素状态的不同来分别定义,这在样式表中被称为“伪状态”。
  34. * 例如:如果我们想在一个 push button在被按下的时候具有sunken的外观,我们可以指定一个叫做:pressed的伪状态。
  35. *
  36. */
  37.  
  38. ui->pushButton->setStyleSheet("QPushButton{"
  39. "border: 2px outset green;"
  40. "border-image:url(://res/1.jpg);"
  41. "}"
  42. "QPushButton:hover{"
  43. "border-image:url(://res/2.png);"
  44. "}"
  45.  
  46. );
  47.  
  48. }
  49.  
  50. Widget::~Widget()
  51. {
  52. delete ui;
  53. }

类似"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. hdoj5493【树状数组+二分】

    题意: 给你n个人的高度, 再给出一个值代表该高度下有前面比他高的 或 后面比他高的人数, 求满足条件下的最小字典序, 不行的话输出"impossible" 思路: 对于最小字典序 ...

  2. AndroidStudio给Unity打jar包

    环境: AndroidStudio2.0 Unity4.68 AS打jar包 新建空工程 删除无用的MainActivity等. 新建Module Module选择Android Library,起名 ...

  3. 码云最火爆开源项目 TOP 50,你都用过哪些?

    前 20 名预览 排名软件排名软件 1zheng11AOSuite 2JFinal12Spiderman 3t-io13AG-Admin 4guns14renren-security 5hutool1 ...

  4. github网页样式

  5. 《统计学习方法》笔记九 EM算法及其推广

    本系列笔记内容参考来源为李航<统计学习方法> EM算法是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计或极大后验概率估计.迭代由 (1)E步:求期望 (2)M步:求极大 组成,称 ...

  6. Vue初始化

    Vue上面的函数怎么来的 vue的打包路径 在web中使用的vue打包路径: npm run build 打包生成vue.js 下面是依次引入: src/platforms/web/entry-run ...

  7. keil_rtx特点

    Keil RTX是一个专为ARM及Cortex M系列处理器开发的无版税的确定的实时操作系统.它允许工程师建立多任务同步并行的程序软件,同时也能帮助使程序代码更加结构化和便于维护.   产品亮点 所有 ...

  8. php __autoload函数 加载类文件

    面向对象的开发时,大家肯定都会遇到这样的问题,就是加载文件,一般都是加文件的头部inclue_once,require一大堆,看着很让人烦.当然你可以自己写程序来加载.php5以后引入了__autol ...

  9. hdu4553约会安排(线段树区间合并)

    链接 poj3667的加强版 当时的题解 这里只不过对于女神需要另开算,DS的占用的时间不加在女神身上,女神的时间都要加,清空的时候也都要算. #include <iostream> #i ...

  10. Nacos部署中的一些常见问题汇总

    开个帖子,汇总一下读者经常提到的一些问题 问题一:Ubuntu下启动Nacos报错 问题描述 使用命令sh startup.sh -m standalone启动报错: ./startup.sh: 78 ...