首页 > 代码库 > C/C++ -- Gui编程 -- Qt库的使用 -- 理解主窗体构造函数
C/C++ -- Gui编程 -- Qt库的使用 -- 理解主窗体构造函数
- MyWidget做父窗体
- MyWidget的构造函数中可以手动添加组件
- Ui::MyWidget存放子部件
- Ui::MyWidget执行setupUi()函数为子部件开辟空间,指定父窗体
- MyWidget只能调用构造函数中添加的组件
- Ui::MyWidget只能调用UI文件中的子部件
- Ui::MyWidget不是Wiget类,只是一个普通类,不能拿他做父窗体
测试:
1.新建GUI工程,主类MyWidget,UI上拖放一个Frame
以后都用Qt5了,省得汉字转码
2.-----mywidget.cpp-----
1 #include "mywidget.h"
2 #include "ui_mywidget.h"
3 #include <QPushButton>
4
5 MyWidget::MyWidget(QWidget *parent) :
6 QWidget(parent),
7 ui(new Ui::MyWidget)
8 {
9 ui->frame = new QFrame(this);
10 ui->frame->setFrameShape(QFrame::Box);
11 QPushButton* btn1 = new QPushButton("胡芦包", ui->frame);
12 ui->setupUi(this);
13 QPushButton* btn2 = new QPushButton("木瓜酥", ui->frame);
14 }
15
16 MyWidget::~MyWidget()
17 {
18 delete ui;
19 }
构造函数执行setupUi之前,frame指针还是null
构造函数执行setupUi后,frame指针指向了新的内存空间
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。