Qt学习笔记3 对话框学习

版权声明:如果喜欢的话,请点击一波关注把,谢谢你,么么哒!转载留名即可 ^_^ https://blog.csdn.net/qq_33375598/article/details/89341545

1,对话框分类

对话框分为模态和非模态对话框;

#include "mywidget.h"
#include "ui_mywidget.h"
#include<QDialog>

MyWidget::MyWidget(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::MyWidget)
{
    ui->setupUi(this);
//    QDialog dialog(this);
//    dialog.show();

    //非模态对话框(与其他对话框交互)
    QDialog * dialog = new QDialog(this);//创建了一个指向QDialog类对象的指针变量
    dialog->setModal(true);//建立模态对话框//调用完show后立即将控制权交给调用者
    //Qt::NonModal 非模态
    //Qt::WindowModal  阻塞父窗口以及子窗口
    //Qt::ApplicationModal 阻塞整个应用所有窗口
    //dialog->setWindowModality(Qt::ApplicationModal);
    dialog->show();

    //模态对话框(不与其他对话框交互)
//    QDialog dialog(this);
//    dialog.exec();//exec函数只有当对话框关闭才会返回

}

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

2,多个对话框切换

mywidget.h

public slots://1 第一步   主界面显示子窗口 【手动关联】
    //void showChildDialog
    void on_showChildButton_clicked();//【自动关联】 更改名字
    //字符on+发射信号的部件对象名+信号名
private slots://2 第一步 
    void on_pushButton_clicked();

mywidget.cpp

//主界面显示登陆对话框
void MyWidget::on_showChildButton_clicked()//1 第二部 添加定义
{
    QDialog *dialog = new QDialog(this);
    dialog->show();
}

//从主界面进入登陆界面
void MyWidget::on_pushButton_clicked()//2 第二部 添加定义
{
    close();
    MyDialog dlg;
    if(dlg.exec() == QDialog::Accepted) show();
}

main.cpp

    MyWidget w;
    MyDialog dialog;
    if(dialog.exec() == QDialog::Accepted){//3 第三部 实现进入主界面功能
        w.show();
        return a.exec();
    }

 

展开阅读全文

没有更多推荐了,返回首页