在子类重新实现paintEvent即可。
C++:
#include <QPainter>
#include <QStyleOption>
void paintEvent(QPaintEvent *e)
{
QStyleOption opt;
opt.init(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
QWidget::paintEvent(e);
}
Python:
def paintEvent(self, event):
opt = QStyleOption()
# PyQt5里,QStyleOption没有init这个接口,但init跟initForm的参数一样,都是传一个窗口指针,估计PyQt5把Qt里这两个接口整合了
opt.initFrom(self)
p = QPainter(self)
self.style().drawPrimitive(QStyle.PE_Widget, opt, p, self)
super().paintEvent(event)