Qt样式表(3):样式表的其他属性
本文为原创文章,转载请注明出处,或注明转载自“黄邦勇帅(原名:黄勇)
本文出自本人原创著作《Qt5.10 GUI完全参考手册》网盘地址:
https://pan.baidu.com/s/1iqagt4SEC8PUYx6t3ku39Q
《C++语法详解》网盘地址:https://pan.baidu.com/s/1dIxLMN5b91zpJN2sZv1MNg
若对C++语法不熟悉,建议参阅本人所著《C++语法详解》一书,电子工业出版社出版,该书语法示例短小精悍,对查阅C++知识点相当方便,并对语法原理进行了透彻、深入详细的讲解,可确保读者彻底弄懂C++的原理,彻底解惑C++,使其知其然更知其所以然。此书是一本全面了解C++不可多得的案头必备图书。
注:类型为属性可取值的“属性类型”(注意:不是Qt类型,属性类型及可取值见13.9.6节)
本小节把border也翻译为边框,因此需注意与frame(边框)的区别,可把border译为边界
13.9.1 与背景色、前景色、所选文本颜色相关的属性(见表13-26)
示例13.13:使用样式表设置部件的背景色(效果见图13-25)
#include<QtWidgets>
int main(int argc, char *argv[]){ QApplication aa(argc,argv);
QWidget w;
aa.setStyleSheet(
//背景色为红色,背景图片为1i.png。注意为属性指定多个值的方法
"QWidget{background: red url(F:/1i.png);"
"background-repeat: repeat-y;" //在y轴方向重复图片
"background-position: right;}"); //图片位于部件右侧
w.resize(300,200); w.show(); return aa.exec(); }
13.9.3 与位置和大小有关的属性
示例13.16:设置子控件的位置和大小(效果见图13-31)
#include<QtWidgets>
int main(int argc, char *argv[]){ QApplication aa(argc,argv);
QWidget w; QSpinBox *pb=new QSpinBox(&w); pb->move(33,33);
pb->resize(300,200); //为使效果比较明显,把按钮设置得相对大一点
aa.setStyleSheet(
"QSpinBox::down-button{" //设置微调按钮的向下按钮
"subcontrol-origin:content;" //子控件的原点矩形
"subcontrol-position:right bottom;" //子控件相对于原点矩形的对齐方式(右下)
"height:22px;" "width:22px;" //设置子控件(即向下按钮)的大小(即宽度和高度)
//设置向下按钮的位置使用绝对坐标指定,若要使用相对坐标,只需把absolute修改为relative即可
"position:absolute;"
"bottom:22px;" "right:11px;"
"margin:11px;" //设置向下按钮的边距
"background-color:red;" //使用红色填充子控件(向下按钮)背景
"background-clip:margin; }" //填充背景的区域为边距矩形(margin)范围
);
w.resize(400,300); w.show(); return aa.exec();}
13.9.4 字体、文本、图标、图像、不透明度属性(见表13-27)
示例13.17:设置字体、文本、图标(效果见图13-32)
#include<QtWidgets>
int main(int argc, char *argv[]){ QApplication aa(argc,argv);
QWidget w; QPushButton *pb1=new QPushButton("AAA",&w);pb1->move(22,22);
pb1->setIcon(QIcon("F:/1i.png")); //添加一个图标
pb1->resize(333,133); //为使效果比较明显,把按钮设置得相对大一点
aa.setStyleSheet(
"QPushButton{"
"icon-size:30px;" //注意:此处必须带上单位(px表示像素)
"text-align:top right;" //文本对齐方式
"text-decoration:underline;" //为文本添加下划线
/*设置字体,以下属性需按照字体度量、样式、大小、字体族的顺序排列,且字体大小必须带上单位,否则属性将不起作用。*/
"font:900 italic 55px Times New Roman;}"
);
w.resize(400,300); w.show(); return aa.exec();}
13.9.5 其他属性
本文作者:黄邦勇帅(原名:黄勇)