Qt 样式表、选择器、盒子模型

1、两种样式表的写法
方式一(普通写法):

    this->setStyleSheet("QPushButton"
                        "{"
                        "background:yellow;"
                        "font:bold 14px;"
                        "color: red;"
                        "}"
                        "QPushButton:hover"
                        "{"
                        "background-color:gray;"
                        "color:white;"
                        "}"
                        "QLabel"
                        "{"
                        "background-color:blue;"
                        "}");

方式二(使用R字符串优化):

    this->setStyleSheet(R"(
                        QPushButton
                        {
                        background:yellow;
                        font:bold 14px;color: red;
                        }
                        QPushButton:hover
                        {
                        background-color:gray;color:white;
                        }
                        QLabel
                        {
                        background-color:blue;
                        }
                        )");

值得注意的是setStyleSheet()该方法只能用于设置有父窗口的子窗口的样式,如果一个窗口没有父窗口,则使用setStyleSheet()不起作用。

2、常用的选择器类型
请添加图片描述
3、给不同的选择器指定相同的属性和值

QPushButton, QLineEdit, QComboBox { color: red }

4、子控件示例

QComboBox::drop-down { image: url(dropdown.png) }

5、伪状态示例

QPushButton:hover { color: white }
QRadioButton:!hover { color: red }/*使用感叹号表示否定,鼠标没有悬停到QRadioButton时才应用规则*/
QCheckBox:hover:checked { color: white }/*伪状态多个连用,达到逻辑与效果*/
QCheckBox:hover, QCheckBox:checked { color: white }/*这样写可以达到逻辑或效果*/
QComboBox::drop-down:hover { image: url(dropdown_bright.png) }/*伪状态和子控件联合使用*/

6、盒子模型
当使用样式表时,每一个部件都被看作拥有4个同心矩形的盒子模型,如下图所示:
在这里插入图片描述
边距(margin)、边框宽度(border)和填衬(padding)等属性的默认值是0,这样四个矩形恰好重合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值