my1.exec()==QDialog::Accepted
来源:互联网 发布:linux修改主机名不重启 编辑:程序博客网 时间:2024/05/22 16:46
f(my1.exec()==QDialog::Accepted)
my1是一个对话框,当调用exec方法时,弹出,等待用户响应,用户可能点击确定,那么exec返回QDialog::Accepted值,如果点击取消则返回QDialog::Rejected,这句话是通过返回值来确定用户的响应结果
1.如果使用exec()默认为模态的。如果用show()需要设置setModel(true)才是模态的。
2.当删除一个dialog对象时,exec()返回QDialog::Rejected,因此在删除dialog时要特别小心。举例说明一下:
A 是一个QWidget 。B是一个QDialog,B = new QDialog(A)。
int rec = B->exec();
if (!thisDeleted)
{
if (rec == QDialog::Accepted)
emit endSession();
if (rec == QDialog::Rejected)
emit endSession2();
}
endSession()和 endSession2()都是A得成员函数。当删除A时,B也会删除(因为B得parent是A),这个时候exec()会返回QDialog::Rejected,此时下面的 emit endSession2()还会继续执行,这个时候就会出现端错误了,因为A比B先删除,而此时还要调用A的成员,A都被删除了,还能调用其成员函数?要是能调用就奇了怪了。因此在类A中多了个静态变量thisDeleted,记得在析构A的时候把这个值改变了,这样就不会在调用emit endSession2(),也就不会出现段错了。
3.exec()是一个循环时间函数,哪它什么时候才能返回了?当调用 accept()(返回QDialog::Accepted), reject()(返回QDialog::Rejected),done(int r)(返回r),close()(返回QDialog::Rejected),hide()(返回QDialog::Rejected),destory()(返回QDialog::Rejected)。还有就是delete 自己的时候也会返回 QDialog::Rejected(destory()就会delete自己)。
4.close()会销毁对象嘛。答案是只有当设置了 setAttribute(WA:closeOnDelelte)是才会删除,如果这个标志没有设置,其作用和hide(),setvisible(false)一样,只会隐藏改对象。
5.当dialog在exec()时候。后台线程同样可以操作界面,如收到每个消息,还可以弹出QDialog。
- my1.exec()==QDialog::Accepted
- exec()之QWidget,QDialog
- QDialog的show()和exec()
- Qt 中界面间的执行调用QDialog::Accepted
- QDialog的show方式和exec方式
- Window 与 Widget,QDialog的exec()函数
- QDialog对话框中show()和exec()
- QDialog的show方式和exec方式
- Ui::Dialog ui; QDialog *dialog=new QDialog; ui.setupUi(dialog);
- QT系列教程 第二讲 相关资料 (exec、accepted)
- qt: exec()的用法,accept()和accepted的概念
- qt: exec()的用法,accept()和accepted的概念
- 关于QT 中 QDialog的几点,exec show(ZZ)
- 关于QT 中 QDialog的几点,exec show
- Qdialog 和Qwidget 区别。show和exec区别
- 记QDialog中exec、show、hide等函数要点
- QDialog执行exec()和show()的区别。
- 关于QT 中 QDialog的几点,exec show(ZZ)
- 1651: 排列顺序
- 1644: 魔法师
- arpspoof和driftnet截获图片
- 理解Windows内置安全主体
- LeetCode第45之 Jump Game II
- my1.exec()==QDialog::Accepted
- 如何将BMP文件转化成16进制文件
- C语言课程设计 问题 G: 整数连接
- 正式环境与生产环境隔离方案
- 机器学习算法原理之人工神经元和单层神经网络
- 并查集--假期关楼
- (感悟)打字练习
- Java正则表达式
- 1581: 聚宝盆