3
我有QVBoxLayout
與多個孩子,我希望能夠在其上繪製。我嘗試過實施paintEvent(QPaintEvent *)
的佈局,但是我繪製的所有東西都留在孩子的下面。我該怎麼做?我很感謝示例代碼。Qt繪製垂直佈局
我有QVBoxLayout
與多個孩子,我希望能夠在其上繪製。我嘗試過實施paintEvent(QPaintEvent *)
的佈局,但是我繪製的所有東西都留在孩子的下面。我該怎麼做?我很感謝示例代碼。Qt繪製垂直佈局
佈局沒有paintEvent
成員,因此您無法重新實現它。我很驚訝,你從這個行動中得到了一些效果。
QWidget
(我們稱之爲包裝)插入到表單中並添加QVBoxLayout
到這個小程序。setParent()
將其添加到包裝中,而不是將其添加到佈局中。簡單實例(測試):
class MyWidget : public QWidget {
public:
void paintEvent(QPaintEvent *e) {
QWidget::paintEvent(e);
QPainter p(this);
p.fillRect(4, 4, 30, 30, QBrush(Qt::red));
}
};
QWidget* wrapper = new QWidget();
QVBoxLayout* layout = new QVBoxLayout(wrapper);
layout->addWidget(new QLabel("test1"));
layout->addWidget(new QLabel("test2"));
MyWidget* overlay = new MyWidget();
overlay->setParent(wrapper);
wrapper->show();