自定义控件时基类用了QWidget,发现qss设置不起作用,需要重载其paintEvent函数即可;
QMyToolButton::QMyToolButton(QWidget *parent) : QWidget(parent)
{ QString strBtnSheet="QMyToolButton::hover{background-color:rgb(190,140,140);}"; strBtnSheet += "QMyToolButton::pressed{background-color:rgb(140,140,140);}"; setStyleSheet(strBtnSheet); }
如下代码:
void QMyToolButton::paintEvent(QPaintEvent*)
{
QStyleOption opt;
opt.init(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}