如果你的按钮类是从QPushButton继承而来,发现对它设置Qss不生效。
尝试了一下网上的方法,后来直接去看了一些QPushButton中的paintEvent函数中到底做了什么,就知道怎么解决了。
解决方法:
- 加上
Q_OBJECT
宏 - 重写
void paintEvent(QPaintEvent *event)
void 你的PushButton::paintEvent(QPaintEvent *event)
{
QPushButton::paintEvent(event);
...
}
这样你定义的按钮就可以用Qss设置样式了,问题解决了。
如果有兴趣,可以看看QPushButton::paintEvent(event)做了些什么事情。
我的Qt安装目录在D盘:
D:\Qt\Qt5.14.1\5.14.1\Src\qtbase\src\widgets\widgets\qpushbutton.cpp
void QPushButton::paintEvent(QPaintEvent *)
{
QStylePainter p(this);
QStyleOptionButton opti