我正在寻找覆盖显示带透明色图像的QLabel
的简单方法,例如QColor(0, 0, 0, 220)
。
这是我所做的QLabel子类的代码:
MyLabel::MyLabel(QWidget* parent): QLabel(parent){
}
void MyLabel::paintEvent(QPaintEvent* _event)
{
QPainter p;
p.begin(this);
// bugs here: "Recursive repaint detected"
p.drawPixmap(0, 0, width(), height(), this->grab() ); <--
p.setBrush(QBrush(QColor(0, 0, 0, 220)));
p.drawRect(0, 0, width(), height());
p.end();
QWidget::paintEvent(_event);
}
是否有必要继承QLabel
来做这些事情?