QT多界面随意跳转,不闪烁
2016-07-04 11:57
381 查看
在很久之前,就弄过QT界面的切换,无非就是close和show的配合使用,比如父界面中show子界面,然后子界面close,父界面重新展示出来,这个是基本思路
但是,有一个问题,已经show的界面,如果再次show,则不能显示在界面最上层,即用户看不到
为了解决这个问题,我首先想到的是将之前show的界面先close,然后再show新的界面,但是这样先close本界面,再show另外一个界面的流程会倒置一个不好的效果:屏幕闪烁一下。所以试试先show新界面,然后再close老界面,这样close的界面在当前show的界面的后面,用户眼睛感受不到,就不会有闪烁的感觉。
为了保证close老界面的操作一定在show新界面的时间轴后面执行,我这里考虑使用发送两种信号,第一个信号是show新界面,第二个信号是close老界面,为了保证close老界面的操作发生在show新界面完成之后执行,需要一定的延时。
我的思路:
两种办法可以解决这种延时,第一:定时器,第二:使用主线程和次线程通信的延时。
这里我使用的是第二种方法,在次线程的槽函数中close老界面
如果感觉有帮助到,麻烦点个赞!!!
源码地址如下:http://pan.baidu.com/s/1jIg1zwy
运行图片:
但是,有一个问题,已经show的界面,如果再次show,则不能显示在界面最上层,即用户看不到
为了解决这个问题,我首先想到的是将之前show的界面先close,然后再show新的界面,但是这样先close本界面,再show另外一个界面的流程会倒置一个不好的效果:屏幕闪烁一下。所以试试先show新界面,然后再close老界面,这样close的界面在当前show的界面的后面,用户眼睛感受不到,就不会有闪烁的感觉。
为了保证close老界面的操作一定在show新界面的时间轴后面执行,我这里考虑使用发送两种信号,第一个信号是show新界面,第二个信号是close老界面,为了保证close老界面的操作发生在show新界面完成之后执行,需要一定的延时。
我的思路:
两种办法可以解决这种延时,第一:定时器,第二:使用主线程和次线程通信的延时。
这里我使用的是第二种方法,在次线程的槽函数中close老界面
如果感觉有帮助到,麻烦点个赞!!!
源码地址如下:http://pan.baidu.com/s/1jIg1zwy
运行图片:
相关文章推荐
- QT多线程中,对象信号与槽连接不上的问题
- qt 预言家 翻译
- qt 打印 刻度尺 曲线 复杂图像
- MQTT协议
- XMPP协议、MQTT协议、HTTP协议、CoAP协议的基本比较
- QT图片资源加载的方式(转载)
- QT 默认环境路径配置方法
- Qt之国际化
- 嵌入式QT软键盘
- win7上qt5.1.1 opencv2.4.7 cmake2.8.12.1环境搭建(关键在环境变量)
- QTabWidget标签实现双击关闭(转)
- Qt中添加OpenCV库
- QT自制类分享 一图流按钮
- pyqt 加载资源文件
- 配置pyqt4开发环境, 之 Pycharm配置
- QT串口通信(1)
- 自动化测试.工具
- PyQt界面编程应用与实践
- ubuntu16.04 安装完Qt后,编译项目出现cannot find -lGL
- QT 文件拖放事件dropEvent和dragEnterEvent