QT 关于样式表的一个需要注意的点以及创建继承于QWidget设置样式表无效的原因

本文介绍如何为特定控件设置样式表而不影响其他同类控件。通过设置对象名称并重写paintEvent方法,确保样式准确应用于目标控件。

程序员给程序添加样式表,比如我想给一个自定义的myPushButton继承于QPushButton 定义样式表

又不想适用于所有的QPushButton都采用这样的样式表我们就需要采用下列写法

setStyleSheet(QString("QPushButton#myPushButton{border:1px solid #DDDDDD;color:#b4b4b4;}"
                                  "QLineEdit#m_edit:hover,focus{border:1px solid #00B266}"));
那么问题就来了样式表为什么不生效呢。

本分的关键点来了  我们需要给myPushButton设置名字,myPushButton->setObjectName(QString("myPushButton"));

(和#号后面一样) 测试一下,是不是样式表就生效了呢


新建了一个继承于QWidget的子类 设置样式表发现无效 需要重写paintEvent(QPaintEvent *event)

void paintEvent(QPaintEvent *event)

{

QStylePainter painter(this);//用style画背景 (会使用setstylesheet中的内容)

QStyleOption opt;

opt.initFrom(this);

opt.rect = rect();

painter.drawPrimitive(QStyle::PE_Widget, opt);

QWidget::paintEvent(event);

}



                
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值