Qt中的窗口类

image

代码示例

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "testwidget.h"
#include "testdialog.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
#if 1
    //一般在qt的构造函数中进行初始化操作(窗口,数据,....)
    //显示当前窗口的时候,显示另外一个窗口 TestWidget
    //创建窗口对象,没有给w对象指定父对象,这个窗口是一个独立窗口
    //要显示这个独立窗口必须要进行show()操作
    TestWidget* w = new TestWidget;
    //显示当前窗口
    w->show();
#else
    //创建窗口对象,没有给w对象指定父对象
    //explicit TestWidget(QWidget *parent = 0);
    //如果创建一个窗口对象的时候给其制定了父对象,这个窗口就不是一个独立窗口
    //这样TestWidget就会内嵌到MianWindow窗口内
    //也就是说,这样的话当前父窗口显示的时候,子窗口就一并被显示出来了
    //这时候子窗口是没有边框的
    TestWidget* w = new TestWidget(this);
#endif

#if 0
    // 创建对话框窗口
    TestDialog* dlg = new TestDialog(this);
    // 非模态
    dlg->show();
#else
    // 创建对话框窗口
    TestDialog* dlg = new TestDialog(this);
    // 模态,exec()
    //这时,不关闭Dialog窗口,MainWindow和TestWidget就无法显示,因为焦点无法过去
    dlg->exec();
#endif
}

MainWindow::~MainWindow()
{
    delete ui;
}

posted @ 2023-03-16 17:52  朱英浩  阅读(52)  评论(0编辑  收藏  举报