您的位置:首页 > 编程语言 > Qt开发

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

运行图片:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: