模式对话框和非模式对话框、accept()函数、exec()函数,Accepted信号区别

一.非模式对话框
  非模式对话框是和同一个程序中其它窗口操作无关的对话框。在字处理软件中查找和替换对话框通常是非模式的来允许同时与应用程序主窗口和对话框进行交互。调用show()来显示非模式对话框。show()立即返回,这样调用代码中的控制流将会继续。
  非模式对话框,说白了,就像你打开了好几个QQ聊天窗口,每个聊天窗口都是一个非模式对话框,想和谁聊和谁聊,只要点击那个窗口就可以输入聊天信息进行发送了。

二.模式对话框

   模式对话框就是阻塞同一应用程序中其它可视窗口的输入的对话框:用户必须完成这个对话框中的交互操作并且关闭了它之后才能访问应用程序中的其它任何窗口。模式对话框有它们自己的本地事件循环。用来让用户选择一个文件或者用来设置应用程序参数的对话框通常是模式的。调用exec()来显示模式对话框。当用户关闭这个对话框,exec()将提供一个可用的返回值并且这时流程控制继续从调用exec()的地方进行。通常,我们连接默认按钮,例如“OK”到accept()槽并且把“Cancel”连接到reject()槽,来使对话框关闭并且返回适当的值。另外我们也可以连接done()槽,传递给它Accepted或Rejected。

我希望在子窗口界面上做一个按键,一旦按下,子窗口界面消失,进入主窗口中。(QT教程与软件里面的第二章)


1、

void LoginDialog::on_pushButton_clicked()
{
    accept();
}

accept()的作用是:是槽函数。其作用是将当前的窗口隐藏(这样就做到子窗口功能消失这个功能),并且发送accepted信号。

2、

LoginDialog dlg;   //创建一个指向子窗口的对象
dlg.exec();    //my1.exec()的意思是:执行模式对话框。按照之前对模式对话框的讲述,
               //my1.exec()的意思就是,显示子窗口,并在这里阻塞住,直到该窗口被关闭之后
               //(隐藏也可以),才继续往下运行!
w.show();//显示主对话框

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值