qt部件构造函数问题

qt部件构造函数问题,第1张

QObject 提供了信号与槽、多语言、Qt垃圾回收等Qt核心机制。它是Qt中所有对象的基类。

QWidget,顾名思义,就是窗体部件的基类,比如QDialog、QLabel等都直接或间接继承自它。它提供了一些窗体部件专有的信号与槽。QtWidget自然也继承自QObject。

一般上,在使用Qt

Creator创建一个类时,Qt会询问你该类的基类是什么、类型信息是什么等。如果你的类是继承自形如QPushButton、QDialog、

QMainWindow、QLabel的,那么,使用explicit MyLabel(QWidget *parent =

0)。如果你的类继承自QString等类,那么使用explicit MyString(QObject*parent = 0)。

这里的QObject *parent也好,QWidget *parent也好,都是为了给对象指定从属关系。比如,

explicit MyLabel(QWidget *parent = 0)

这样:

QDialog dialog

MyLabel *label = new MyLabel(&dialog)

就指定了label是作为dialog的一个child存在的。当dialog被销毁时,它的所有children都会被自动销毁。所以在Qt中,只要我们在动态创建对象时显式或隐式(比如通过Layout、setCentralWidget等)指定了对象的从属关系,那么这个对象就会在其父对象销毁的时刻被Qt自动销毁,而无需你自己再调用delete了。

HelloDialog 中不是有一个成员 Ui::HelloDialog *ui //新添内容

这里的ui就是指这个数据成员啊,这个的意思就是 ui =new Ui::HelloDialog

就是给成员ui进行初始化。

new就是新建,UI::Widget就是一个Widget界面

所以就是初始化一个Widget界面指针,其变量名为ui。

Qt构建的时候可以带界面,这个界面在构造函数里默认叫ui的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11502676.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存