纯代码继承QWidget

自定义窗口类继承QWidget不显示

主要是因为QSS样式不生效

QWidget仅仅支持background,background-clip和background-origin属性(其实和不支持qss也没差多少…)。如果你继承自QWidget自定义一个窗口,那么你需要重写 paintEvent事件,当然文档里已经给你写好了,直接粘贴进去就可以了。下面列一份代码段:

1
2
3
4
5
6
7
8
void CustomWidget::paintEvent(QPaintEvent *event)
{
QStyleOption opt;
opt.init(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}