1. 程式人生 > >QT中在子widget中繪製圖形

QT中在子widget中繪製圖形

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類。