QT中在子widget中繪製圖形
阿新 • • 發佈:2019-02-02
class PaintWidget:public QWidget { public: PaintWidget(QWidget*parent=0) } 然後在cpp中寫 PaintWidget::PaintWidget(QWidget*parent):QWidget(parent) 前面的*parent=0 和 cpp中的(QWidget*parent):QWidget(parent)含義:
意思是說,重定義父物件。 如何重定義呢?看parent引數。 當PaintWidget放到某個視窗上的時候,該PaintWidget的父物件就被重定義為該視窗。 但是,由於PaintWidget本身繼承於QWidget,那麼還需要對QWidget的父物件重定義。PaintWidget通過parent指標來告訴父類QWidget:“我的父物件是該視窗, 請把你的父物件也置為那個視窗”。 就是這樣。。。 請注意區分父類和父物件的區別。 例項如下:當我將一個widget控制元件提升為自定義的一個函式的時候;才能將我們寫的類和控制元件之間建立起相應的聯絡。 但對於QtCreater 使用UI工具設計的介面:在mainwindows中新增widget等控制元件時,新建立的控制元件繼承於QWidget,所以需要Qwidget的父類物件重定義。 因此需要在類的建構函式引數中新增 QWidget *parent = 0;並且在建構函式中繼承QWidget類。