使用QSS设置了QWidget的样式,实际运行时却完全无效。甚至在Designer中设置该StyleSheet后都能预览到预想中的效果,然而实际运行却没有效果。
经过网上搜索得到如下解决办法,在该QWidget的子类中重新实现paintEvent这个protected成员函数:
void MyWidget::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event);
QStyleOption opt;
opt.init(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}
当然,也可以使用QFrame。