QT +样式表
学习样式表的目的:可以设计出好看的控件。(比如可以给一些按钮设计成好看的图片)
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 +样式表的更多相关文章
- 通过Qt样式表定制程序外观(比较通俗易懂)
1. 何为Qt样式表[喝小酒的网摘]http://blog.hehehehehe.cn/a/10270.htm2. 样式表语法基础3. 方箱模型4. 前景与背景5. 创建可缩放样式6. 控制大小7. ...
- 【转】QT样式表 (QStyleSheet)
作者:刘旭晖 Raymond 转载请注明出处Email:colorant@163.comBLOG:http://blog.csdn.net/colorant/ 除了子类化Style类,使用QT样式表( ...
- Qt样式表使用注意项
Qt样式表使用注意项 <1>.StyleSheet的使用StyleSheet文件的默认后缀名为qss,可以通过命令行参数-stylesheet filename.qss来设置样式表,也可以 ...
- Qt样式表的使用
Qt中可以灵活的使用层叠样式表(CSS),其语法和CSS很相似.因为HTML CSS的灵活性,所以可以很方便的为QT界面设计自己需要的外观.除了子类化Style类,使用QT样式表(QStyleShee ...
- QT样式表
QT样式表 一.QT样式表简介 1.QT样式表简介 QSS的主要功能是使界面的表现与界面的元素分离,使得设计皮肤与界面控件分离的软件成为可能. QT样式表是允许用户定制widgets组件外观的强大机制 ...
- QT 样式表基础知识
1. 何为Qt样式表2. 样式表语法基础3. 方箱模型4. 前景与背景5. 创建可缩放样式6. 控制大小7. 处理伪状态8. 使用子部件定义微观样式 8.1. 相对定位 8.2. 绝对定位 摘要 ...
- qt 样式表基本用法
Qt样式表 QT样式表参考CSS层叠样式表设计,不同之处在于QT样式表应用于Widget世界. 可以使用QApplication::setStyleSheet()函数设置到整个应用程序上,也可以使用Q ...
- Qt样式表之三:实现按钮三态效果的三种方法
按钮的三态,指的是普通态.鼠标的悬停态.按下态.Qt中如果使用的是默认按钮,三态的效果是有的,鼠标放上去会变色,点击的时候有凹陷的效果. 但是如果自定义按钮实现三态效果有三种方法,一种是设置背景图,主 ...
- Qt样式表之二:QSS语法及常用样式
一.简述 Qt样式表(以下统称QSS)的术语和语法规则几乎和CSS相同.如果你熟悉CSS,可以快速浏览以下内容.不熟悉的话可以先去W3School - CSS或者本人的CSS博客随笔简单了解一下. 在 ...
随机推荐
- Fitnesse的一个简单实例
Fixture 代码 package eg; import org.joda.time.DateTime; public class JodaTime { int year; public Strin ...
- 201621123016《Java程序设计》第三周学习总结
1. 本周学习总结 1.初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化的概念.知识点组织起来.请使用工具画出本周学习到的知识点及知识点之间的联系.步骤如下: 1.1 写 ...
- CSS小技巧收藏
居中对齐 很多时候我们需要把一个元素在其父级容器里水平.垂直居中对齐.以下我列出了常用的几种方法: 1.在知道子元素宽度与高度的情况下进行居中,采用位置定位:absolute + margin .pa ...
- 51nod 1013【快速幂+逆元】
等比式子: Sn=(a1-an*q)/(1-q) n很大,搞一发快速幂,除法不适用于取膜,逆元一下(利用费马小定理) 假如p是质数,且gcd(a,p)=1,那么 a^(p-1)≡1(mod p).刚好 ...
- opencv 缩放旋转
如果100*50的图要转成50*100 角度90或-90 旋转中心应该为 Point2f(image.rows / 2, image.rows / 2); // 图像旋转与缩放 // Author: ...
- PUSH 和 远程推送
1. UIApplacation向 APNS 注册 push notification 服务 (1) 应用程序要支持推送服务, 在网页里面配置 http://developer.apple.com/ ...
- LVS-DR VIP和RIP不同网段的配置方法
http://blog.itpub.net/25723371/viewspace-1446935/
- java基础第二篇
3.选择结构 a.if: 格式一: if(表达式1){ 表达式1为真才执行 } 格式二: if(表达式1){ 表达式1为真才执行 }else{ 表达式1位假才执行 } 格式三:判断工龄的范围,判断成绩 ...
- Flask (一) 简介
Flask简介 Flask是一个基于Python实现的Web开发‘微’框架 'MicroFramework' Django是一个重型框架 官方文档: http://flask.pocoo.org/do ...
- python 基础(十三) time模块
日期和时间 一.time模块 import time 时间戳: 时间戳是指格林威治时间1970年1月1日0时0分0秒至现在的秒数 s(秒).ms(毫秒).μs(微秒).ns(纳秒), 其中:1 ...