paintEvent removes QFrame border
Solved
General and Desktop
-
the title says it all. when i remove the paint event override, the frame box is displayed. please help understand
here's the code:
class Frame : public QFrame { Q_OBJECT public: Frame(QWidget *parent = nullptr); protected: void paintEvent(QPaintEvent *event) override; void mousePressEvent(QMouseEvent *event) override; }; Frame::Frame(QWidget *parent /* = nullptr */) : QFrame(parent) { auto pTitleLabel = new QLabel("Frame", this); setFrameStyle(QFrame::StyledPanel); setFixedSize(400, 600); } void Frame::paintEvent(QPaintEvent *event) { QWidget::paintEvent(event); } void Frame::mousePressEvent(QMouseEvent *event) { QWidget::mousePressEvent(event); }
-
Hi,
Because you are calling QWidget's paint function rather than QFrame's paint function which is the base class of your widget.