首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
数据库
›
SQL-Server
›
QT的exec函数
返回列表
发新帖
QT的exec函数
[复制链接]
发表于 2024-11-30 05:02:10
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
在Qt框架中,exec()方法是QDialog类(及其子类)的一个成员函数,用于以模态(modal)方式表现对话框。当exec()被调用时,它会启动一个局部的变乱循环,这个循环会壅闭对对话框之外的其他窗口的访问,直到对话框被关闭。
exec()方法的返回类型通常是int或QDialog:
ialogCode(后者是一个罗列类型,提供了标准对话框结果的预定义值,如QDialog::Accepted和QDialog::Rejected)。返回的值通常用于指示对话框是怎样被关闭的,例如用户点击了哪个按钮。
点击按钮打开新窗口
void Widget::on_btnOpen_clicked(){
SetDialog dlg;
dlg.exec();
}
复制
代码
错误写法:窗口一闪而过
void Widget::on_btnOpen_clicked(){
SetDialog dlg;
dlg.show();
//dlg.exec();
}
复制
代码
在Qt框架中,对话框的表现方式通常有两种:模态(modal)和非模态(non-modal)。这两种方式的区别在于用户与对话框之外的其他窗口的交互本领。
模态对话框
:
当使用exec()方法表现对话框时,它会以模态方式运行。这意味着在对话框关闭之前,用户不能与对话框之外的其他窗口进行交互。exec()方法会启动一个局部的变乱循环,直到对话框被关闭,这个循环才会结束。因此,exec()是壅闭的,它会暂停
代码
的执行,直到对话框关闭。
非模态对话框
:
当使用show()方法表现对话框时,它会以非模态方式运行。这意味着对话框表现后,用户仍然可以与对话框之外的其他窗口进行交互。show()方法不会启动新的变乱循环,也不会壅闭代码的执行。因此,对话框的表现是即时的,而代码的执行会继承进行。
当你调用dlg.show()时,对话框会以非模态方式表现,用户可以与对话框和其他窗口进行交互。
如果你注释掉// dlg.exec();这一行,那么对话框将以非模态方式继承运行,这是符合预期的。但是,如果你取消注释并调用dlg.exec();,那么对话框会起首以非模态方式表现(因为show()已经被调用),然后exec()会尝试以模态方式运行对话框。这通常会导致一些不盼望的行为,因为对话框已经表现了一次,而且exec()会再次进入变乱循环等候对话框关闭。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
回复
使用道具
举报
返回列表
乌市泽哥
+ 我要发帖
×
登录参与点评抽奖,加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表