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类。
QT中在子widget中绘制图形
最新推荐文章于 2024-07-17 11:05:44 发布