从 QWidget 派生一个窗口,使用 stylesheet 设置背景,在 designer 中可以看到效果,编译运行后,没有背景。原因比较简单,QWidget 的 paintEvent() 是空的,而样式表要通过 paint 被绘制到窗口中,我们需要重新写paintEvent() 函数,才能够真正实现继承。
//.h文件 // 增加 paintEvent() 的声明 protected: void paintEvent(QPaintEvent *); //重写paintEvent()
// .cpp 文件,假如类名为 Widget //重写paintEvent() void Widget::paintEvent(QPaintEvent *) { QStyleOption opt; opt.init(this); QPainter p(this); style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); }
原文转自:http://blog.csdn.net/dbzhang800
原文地址:http://blog.csdn.net/tennysonsky/article/details/46604415