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博客随笔简单了解一下. 在 ...
随机推荐
- Linux系统调用及其效率
操作系统相关概念: 操作系统---管理计算机硬件与软件资源的软件,是用户与系统操作交互的接口,为在它上面运行的程序提供服务. 操作系统内核 ----操作系统的核心.负责管理系统的进程.内核.设备驱动程 ...
- 一个C#开发者重温C++的心路历程
不知道为什么,似乎很多人理解跑偏了,在这里我要说明一下. 首先,我并没有对C++语言有偏见,我只是单纯的在学习时,在理解时,对C++语言进行一些吐槽,我相信,很多学习C++的人,也会有类似的吐槽. 其 ...
- 4.2 手写Java PriorityQueue 核心源码 - 实现篇
上一节介绍了PriorityQueue的原理,先来简单的回顾一下 PriorityQueue 的原理 以最大堆为例来介绍 PriorityQueue是用一棵完全二叉树实现的. 不但是棵完全二叉树,而且 ...
- laravel SQL语句
DB::table('表名')->get(); //查询表里的所有数据 DB::table('表名')->where()->find(需要查询的条数); 查询单或多条数据 ...
- uoj#275. 【清华集训2016】组合数问题(数位dp)
传送门 假设有\(k|{n\choose m}\),因为\(n!\)中质因子\(k\)的次数为\(S(n)=\left\lfloor\frac{n}{k}\right\rfloor+\left\lfl ...
- 笔记-JavaWeb学习之旅5
CP30的演示 package cn.itcast.datasourcejdbc; import com.mchange.v2.c3p0.ComboPooledDataSource; import j ...
- 「开源」SpringCloud+vue搭建的商城项目
最近在研究SpringCloud,看到一个基于SpringCloud+vue搭建的模拟商城项目.用来辅助学习SpringCloud企业级开发还是很有帮助的.强烈推荐!! 源码地址在最后. spring ...
- 执行gulp build报错
问题与分析 在执行gulp build报错如下: D:\coding\Resume\Resumes>gulp build gulp build[5628]: src\node_contextif ...
- HDU-1003:Max Sum(优化)
Max Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
- Codeforces Round #497 (Div. 2)B. Turn the Rectangles
Bryce1010模板 http://codeforces.com/contest/1008/problems #include <bits/stdc++.h> using namespa ...