当前位置 博文首页 > liuguangshibei的博客:QT学习——day2
#include "mywidget.h"
#include "ui_mywidget.h"
#include "testwidget.h"
#include "testdialog.h"
#include "testmainwindow.h"
Mywidget::Mywidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Mywidget)
{
ui->setupUi(this);
//b2=new QPushButton("hellow");
//b2->show();
#if 0
//显示当前窗口的时候,显示另外一个窗口TestWidget
//创建窗口对象,没有给w指定父对象
//在QT中显示窗口必须调用show()方法
//在创建窗口中如果有父窗口就可以不需要用show(0方法
TestWidget *w =new TestWidget;
w->show();
#else
TestWidget *w =new TestWidget();
w->show();
//MainWindow类型不能依附与父窗口显示,只能单独显示
TestMainWindow *win= new TestMainWindow();
win->show();
#endif
#if 0
//创建对话框窗口,show()进行非模态显示
TestDialog *dlg=new TestDialog();
dlg->show();
#else
TestDialog *dlg=new TestDialog();
//Dialog窗口不能依附父窗口实现,只能单独显示
//模态,exec()阻塞程序的执行,进行模态显示
dlg->exec();
#endif
}
Mywidget::~Mywidget()
{
delete ui;
}
this指针指向的是当前的主窗口,往哪一级嵌套,就将指针指向哪一级(父窗口)。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-71qOdbbB-1612277130663)(C:\Users\流光拾贝\AppData\Roaming\Typora\typora-user-images\image-20210120112340584.png)]
每一个子窗口的以左上角的顶点决定窗口的位置,左上角顶点的坐标参照与其父窗口,以此类推。
在qt中的Qwidget与Qobject中的构造函数里都有一个指向父对象的指针形参,故若继承与这两个类的子类,在定义对象时可以执行此构造函数与其父对象进行绑定,从而在其父对象执行结束的时候,它也随之结束,调用析构函数析构回收内存。
TestDialog *dlg=new TestDialog(this);
dlg->exec();
如上:添加this指针以后关闭主窗口其也随之关闭,若不加this指针,则关闭主窗口其不会随之关闭,而需单独关闭。
qDebug()<<"fwefwef"<<"fwefweaf";
单独关闭。
qDebug()<<"fwefwef"<<"fwefweaf";
若要在控制台输出而不是终端则在.pro文件后加console;
cs