码迷,mamicode.com
首页 > 其他好文 > 详细

对话框几种调用方式

时间:2020-05-03 18:22:39      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:str   show   相同   app   int   widget   否则   ted   mod   

随便新建一个主窗体

技术图片

 

 再随便建一个对话框dialog

技术图片

 

 

接下来在主函数中调用dialog

第一种:

#include "widget.h"
#include "dialog.h"
#include <QDebug>

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();

    Dialog d;
    
    d.exec();

    qDebug()<<"看看走到了这里没有";

    return a.exec();
}

 

d.exec();

阻塞窗体,也阻塞代码,除非你点击确定或取消离开了dialog的界面,否则主窗体会一直阻塞

 

第二种:

#include "widget.h"
#include "dialog.h"
#include <QDebug>

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();

    Dialog d;


    d.show();

    qDebug()<<"看看走到了这里没有";

    return a.exec();
}

 

d.show(); 

不阻塞窗体,也不会阻塞代码,即便不关闭这个dialog 后面原本程序内容也可以正常运行。

 

第三种:

#include "widget.h"
#include "dialog.h"
#include <QDebug>

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();

    Dialog d;

    //模态
    d.setModal(true);
    d.show();

    qDebug()<<"看看走到了这里没有";

    return a.exec();
}

 

在调用dialog之前,先将其转为模态,不阻塞代码,但是阻塞窗体

如果设置为false,就是默认状态,和第二种情况相同。

 

 

可以调用accept()函数,结束exec()

先做一个简单的登陆界面

技术图片

 

 然后给两个 push button 写上槽函数

void Dialog::on_pushButton_clicked()
{
    QString a = ui->lineEdit->text();
    QString b = ui->lineEdit_2->text();
    if(a == b)
    {
        accept();
    }
}

void Dialog::on_pushButton_2_clicked()
{
    close();
}

这里简单的写成当账号密码相等时登陆验证成功

 

接着再主函数中先创建窗体,这里对话框选择第一种,阻塞窗体也阻塞代码,这样再密码输入错误的时候就无法进入主窗体界面

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);


    Dialog d;


    if(d.exec() == QDialog::Rejected)
    {
        return 0;
    }

    Widget w;
    w.show();

    qDebug()<<"看看走到了这里没有";

    return a.exec();
}

 

对话框几种调用方式

标签:str   show   相同   app   int   widget   否则   ted   mod   

原文地址:https://www.cnblogs.com/qifeng1024/p/12822500.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!