PDA

View Full Version : no frame on Qlabel derived class



tupu_83
19th November 2008, 15:04
Hi all, I am trying to paint with QLabel derived widget and still get widgets frame to be visible. When there is a frame without a drawing function, the frame is shown correctly. The problem is that when I reimplement paintEvent method, the frame is not shown anymore.



class GameArea: public QLabel {
public:
GameArea(QWidget *parent = 0);
~GameArea();

protected:
void paintEvent(QPaintEvent *event);
};



label = new GameArea(Exercise2Class);
label->setFrameShape(QFrame::StyledPanel);




void GameArea::paintEvent(QPaintEvent * /* event */)
{
QPainter painter(this);
QPen pen;
QBrush brush;
pen.setColor(Qt::red);
brush.setStyle(Qt::SolidPattern);
brush.setColor(Qt::red);
painter.setPen(pen);
painter.setBrush(brush);
painter.drawEllipse(rect().center(), 20, 20);
}

jpn
19th November 2008, 15:37
Hi,

To get something painted what is painted in the base class implementation of paintEvent(), you must call it:


void MyDerivedLabel::paintEvent(QPaintEvent* event)
{
QLabel::paintEvent(event); // <---
QPainter painter(this);
...
}

tupu_83
19th November 2008, 16:01
Thanks for fast reply. The problem solved...