Qt编程中QDiaog的ESC建
2024-09-01 00:28:17
最近使用QDialog时,按了下Esc键,导致QDialog被关闭,而后续的数据处理出现了问题。原来在QDialog中按下Esc键会默认调用reject()方法而不是closeEvent(QCloseEvent*event)或者其他事件。
处理的方法:
(注意:QDialog的close()函数也是会调用reject()函数和关闭函数,若在reject()中直接调用close()也会无法关闭,要先调用hide())
(1)重新实现reject()方法
- void TestDialog::reject()
- {
- //关闭窗口,可以重新执行其他事件
- this->hide(); //或者this->accept()
- this->close();
- }
2、重写keyPressEvent(QKeyEvent *event)
- void TestDialog::keyPressEvent(QKeyEvent *event)
- {
- switch(event->key()) {
- //进行界面退出,重写Esc键,否则重写reject()方法
- case Qt::Key_Escape:
- this->close();
- break;
- default:
- QDialog::keyPressEvent(event);
- }
- }
以上者两种方法都可以解决Esc键触发的问题,当然这只是在QDialog中是这种情况。在QWidget中没有reject ()和accept()槽函数,但可以通过keyPressEvent(QKeyEvent*event)来制定Esc键的功能。
http://blog.csdn.net/taiyang1987912/article/details/48053575
最新文章
- [杂谈]冲NOIP一等奖。。
- Structure Of Management Information - SNMP Tutorial
- initWithCoder: 与initWithFrame:的区别
- xampp的Apache无法启动解决方法
- 关于ImageMagick出现无效参数(invalid parameter)的解决方法
- EntityFramework执行SQL语句
- Javascript -- Math.round()、Math.ceil()、Math.floor()、parseInt去小数取整总结
- ExtJS 4 组件详解
- HDU 3032 Nim or not Nim? (sg函数求解)
- java-信息安全(二)-对称加密算法DES,3DES,AES,Blowfish,RC2,RC4
- 再议Unity优化
- zookeeper分布式搭建
- iOS日历中给一个事件添加多个提醒
- 【基于微信小程序的社区电商平台】第一次迭代心得(非正式版本
- 第七节《Git协议与工作协同》
- python基础(10)-匿名函数&;内置函数
- Java微信二次开发(五)
- android SpannableString使用详解
- python编码(三)
- pythonDjango开发-安装第三方插件
热门文章
- 【hdu2457】ac自动机 + dp
- solr 7.x 查询及高亮
- 多域名绑定同一IP地址,Node.js来实现
- Objective-C的基础数据结构
- JScript实现将指定目录下的vc工程加到解决方案
- 去除WPF中3D图形的锯齿
- 编译wxWidgets —— windows、vc71、bcc32、MinGW与命令行
- modern-cpp-features
- Ant—使用Ant构建一个简单的Java工程(两)
- cross-compile-openssl-windows.sh,cross-compile-curl-windows.sh,cross-compile-zlib-windows.sh,build-zlib-visual-studio-2015-cli.bat