您的位置:首页 > 编程语言 > Qt开发

Qt Creator stylesheet 简单应用

2016-06-30 18:41 295 查看

Qt Creator  stylesheet  简单应用

先说说自己的情况吧,大龄转行,凭借自己的爱好,依然转到IT 圈,本来学的嵌入式,到现在驱动不会写,后来到了现在的公司,烧写内核,Qt 移植,串口程序编写,后来竟让我写开了Android ,看来我快成全才了,呵呵.............. 

做了有一年多的程序员了,说实在的感触还是满多的。其中有一点恨重要,那就是程序员的做事思路,整个简单词就是做事步骤。真的,我在这上边吃了老多亏了。就拿这次更改Qt  程序来说吧。改个界面,我用了两天!还是最简单的那种界面,真有种要死的感觉!!!!

还是说说我们程序原的思考方式吧! 永远要记住一句话,没有理论基础的开发,都是瞎扯蛋!!!!!什么是理论基础,就是你小学方程的解题步骤!

再说说做事步骤,首先要知道问题出那了,就拿这次改界面来说,就是不知道stylesheet 怎么用,控件背景效果怎么设置,然后就那自己瞎折腾,耗时,费力,伤神。然后就是查资料,有很多人总结好的文档,拿过来用心读一下,马上就明白了,在实践练习一下,时间都用不了半天,这些知识就熟知了。废话不多说了,来看看这个stylesheet

用法:

1.在Qt Creator 的设计里用



就在图中偏下方的位置。



注意里面的双引号,因为在点击“添加资源” 中设计到图片的都是不给加双引号的。

2.在代码中应用

 ui->ButtonChn0->setStyleSheet(QString::fromUtf8("background-color: rgb(255, 0, 0);border-style: outset;border-width: 2px;border-radius: 10px;border-color: beige;color: rgb(255, 255, 255);padding: 4px;font: 20pt \"wenquanyi\";"));

就这么简单的书写格式。还要注意双引号的“\”,不然语法错误。

3.还差什么

当然是接触的理论知识了啊!下面的是别人文当上拷贝下来的!

QtComponent Style Sheet
说明:QtStyle
Sheets支持以CSS的格式来定制和修改控件的外观。
以下为一些常用格式:

1
通用属性

一 边框

1Border

编号
属性
示例值
适用组件
使用示例
1

Border

2px solid#8f8f91

所有控件

border: 10pxsolid #8f8f91;

基本语法:border: border-width || border-style || border-color
border:宽度 样式 颜色;
说明:该属性是复合属性。请参阅各参数对应的属性。

border-topborder-rightborder-bottomborder-left同上。

2border-style

编号
属性
示例值
适用组件
使用示例
2

border-style

solid

所有控件

border-style :outset

基本语法

border-style: none | hidden | dotted | dashed | solid | double | groove | ridge |inset | outset

语法取值

none: 默认值。无边框。不受任何指定的border-width值影响

hidden: 隐藏边框。IE不支持

dotted: 在MAC平台上IE4+与WINDOWS和UNIX平台上IE5.5+为点线。否则为实线

dashed: 在MAC平台上IE4+与WINDOWS和UNIX平台上IE5.5+为虚线。否则为实线

solid: 实线边框

double: 双线边框。两条单线与其间隔的和等于指定的border-width值

groove: 根据border-color的值画3D凹槽

ridge: 根据border-color的值画3D凸槽

inset: 根据border-color的值画3D凹边

outset: 根据border-color的值画3D凸边

border-top-styleborder-right-styleborder-bottom-styleborder-left-style同上。

3Border-width

编号
属性
示例值
适用组件
使用示例
3

Border-width

8px

所有控件

border-width:8px;

基本语法

border-width: medium | thin | thick | length

语法取值

medium: 默认值。默认宽度

thin: 小于默认宽度

thick: 大于默认宽度

length: 由浮点数字和单位标识符组成的长度值。不可为负值。请参阅长度单位

border-top-widthborder-right-widthborder-bottom-widthborder-left-width同上。

4Border-color

编号
属性
示例值
适用组件
使用示例
3

border-color

#8f8f91

所有控件

border-corlor:red

基本语法:border-color: color

5Border-radius

编号
属性
示例值
适用组件
使用示例
2

Border-radius

一般控件最大值10px
QPushButton为30px

所有控件

border-radius:30px;

基本语法:border-radius:26px;
功能:圆角角度

6border-image

编号
属性
示例值
适用组件
使用示例
2

border-image

所有控件

border-image:url(:/newPrefix/1.png);

基本语法:border-image:url(:/newPrefix/1.png);

二 背景

1background

编号
属性
示例值
适用组件
使用示例
2

background

所有控件

background:white url(:/newPrefix/1.png) repeat-y fixed right top;

基本语法:

background: background-color || background-image || background-repeat ||background-attachment || background-position

2background-color

同边框里的Border-color

3background-image

同边框里的Border-image

4background-repeat

基本语法:

background-repeat: repeat | no-repeat | repeat-x | repeat-y

语法取值

repeat: 默认值。背景图像在纵向和横向上平铺

no-repeat: 背景图像不平铺

repeat-x: 背景图像仅在横向上平铺

repeat-y: 背景图像仅在纵向上平铺

5background-attachment

基本语法

background-attachment: scroll | fixed

语法取值

scroll: 默认值。背景图像是随对象内容滚动

fixed: 背景图像固定

6background-position

编号
属性
示例值
适用组件
使用示例
2

background-position

center

所有控件

border-position:top

基本语法

background-position: length || length

background-position: position || position

语法取值

length: 百分数|由浮点数字和单位标识符组成的长度值。请参阅长度单位

position: top|
center | bottom | left | center | right

2
渐变色

1
角度渐变

基本格式:qconicalgradient(cx,cy,angle, stop:positionrgba(R,G,B,A))

语法取值

angle: 渐变角度,值为0-360度

cx: 起始X坐标,值为0-1

cy: 起始Y坐标,值为0-1

stop:positionrgba(R,G,B,A): 渐变的位置和颜色

position渐变位置,,值为0-1

R,G,B,A分别为红,绿,黑,透明色

实例:
border-color:qconicalgradient(cx:0, cy:0, angle:135, stop:0 rgba(255, 255, 0, 69),stop:0.375 rgba(255, 255, 0, 69), stop:0.423533 rgba(251, 255, 0,145),
stop:0.45 rgba(247, 255, 0, 208), stop:0.477581 rgba(255, 244,71, 130), stop:0.518717 rgba(255, 218, 71, 130), stop:0.55 rgba(255,255, 0, 255), stop:0.57754 rgba(255, 203, 0, 130), stop:0.625rgba(255, 255, 0, 69), stop:1 rgba(255, 255, 0, 69));

2
线性渐变

基本格式:qlineargradient(spread:type,x1, y1, x2, y2,stop:positionrgba(R,G,B,A))

语法取值

spread:type: 渐变类型type有三种:

pad–平铺

repeat–重复
reflect–反射

x1: 起始X坐标,值为0-1

y1: 起始Y坐标,值为0-1

x2: 结束X坐标,值为0-1

y2: 结束Y坐标,值为0-1

stop:positionrgba(R,G,B,A): 渐变的位置和颜色

position渐变位置,,值为0-1

R,G,B,A分别为红,绿,黑,透明色
实例:
border-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(134,245, 99, 255), stop:0.514124 rgba(235, 148, 61, 255), stop:0.954802rgba(115,
87, 128, 255));

3
辐射渐变

基本格式:qradialgradient(spread:type, x1, y1, x2, y2, radius ,stop:positionrgba(R,G,B,A))

语法取值

spread:type: 渐变类型type有三种:

pad–平铺

repeat–重复
reflect–反射

x1: 起始X坐标,值为0-1

y1: 起始Y坐标,值为0-1

x2: 结束X坐标,值为0-1

y2: 结束Y坐标,值为0-1

radius:半径,值

stop:positionrgba(R,G,B,A): 渐变的位置和颜色

position渐变位置,,值为0-1

R,G,B,A分别为红,绿,黑,透明色

实例:
background-color:qradialgradient(spread:repeat, cx:0.5, cy:0.5, radius:0.077, fx:0.5,fy:0.5, stop:0 rgba(0, 169, 255, 147), stop:0.497326 rgba(0, 0, 0,147),
stop:1 rgba(0, 169, 255, 147));

4.补充

有些控件添加背景图片的时候,因为不想子类继承,需要加上 #控件名{。。。。。。。 }例如:

#base_frame{background-image: url(":/image/image/background294×850.png");}

要想了解更多: http://blog.csdn.net/cgzhello1/article/details/8514113
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: