08 Qt样式表

版权声明:原创不易,如引用,请附原文链接 https://blog.csdn.net/Chiang2018/article/details/89221791

Qt样式表通过调用Qidget::setStyleSheet()或者QApplication::setStyleSheet()为独立的子部件、整个窗口,甚至是整个应用程序指定一个样式表。

1、样式表的基础语法

Qt的样式表的语法几乎和CSS完全相同,都是由一系列的样式规则构成。例如:

//设置该页面所有的QCheckBox、QLabel、QPushButton的颜色为红色,背景色为白色
this->setStyleSheet("QCheckBox,QLabel,QPushButton{color:red;"
                               "background-color:write;"
                               "}");

2、前景及背景

前景:前景色指的是用来绘制控件上面的文本颜色,通过color属性设置

背景:背景色指的是用于绘制部件由background-origin指定的矩形区域(空白、边框、填充、内容)的填充颜色,通过background-color指定,另外控件的背景图片可以使用background-image设置。另外可以通过background-position设置图片的平铺方式,background-repeat设置是否重复。例如:

//默认情况下,背景图片是自动重复平铺以覆盖整个矩形区域
this->setStyleSheet("QPushButton{color:red;"
                               "margin:10px,14px,11px,12px;"
                               "background-color:green;"           //设置背景颜色
                               "background-image:url(:/res/1.png);"//设置背景图片
                               "background-position:top right;"    //设置图片向右对齐填充
                               "background-origin:concent;"       //填充的是内容部分
                               "background-repeat:none;"          //不重复
                               "}");

3、控制大小

min-width和min-height可以用来指定一个部件的内容区域的最小大小,也可以通过Qt的minimumSizeHint()设置。

4、伪状态处理

伪状态列表
伪状态 描述
:checked button部件被选中
:disabled 部件被禁用
:enabled 部件被启用
:focus 部件获得焦点
:hover 鼠标悬浮在部件上
:indeterminate checkbox或radiobutton被部分选中
:off 部件可以切换且处于off状态
:on 部件可以切换且处于on状态
:pressed 部件被鼠标点击
:unchecked button部件没有被选中

5、使用子部件定义微观样式

许多部件都包含子部件,例如SpinBox的上下箭头,滑块等。子部件可以通过 ::来指定QDateEdit::up-button。另外子部件可以和伪状态结合使用。例如:QSpinBox::up-button:hover{};

子部件列表
子部件 描述
::up-button QSpinBox、QDateEdit的向上按钮
::down-button QSpinBox、QDateEdit的向下按钮
::up-arrow QSpinBox、QDateEdit的向上箭头
::down-arrow QSpinBox、QDateEdit的向下箭头
::drop-down combo box的下拉箭头
::indicator checkbox、radiobutton或可选groupbox的指示器
::item menu、meunbar或statusbar的子项目
::menu-indicator pushbutton的菜单指示器
::title groupbox的标题

另外可以通过subcontrol-position和subcontrol-origin属性设置子部件放置的位置

猜你喜欢

转载自blog.csdn.net/Chiang2018/article/details/89221791