使用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。
本文介绍了一种当QSS样式无法正确应用于QWidget时的解决方法。通过重新实现QWidget的子类中的paintEvent函数,可以成功地使样式生效。此外,还提到了使用QFrame作为另一种可能的解决方案。
4129

被折叠的 条评论
为什么被折叠?



