Qt应用程序出现卡顿的现象怎么解决呢

电子说

1.2w人已加入

描述

本文描述一个以前小生在工作中遇到的一个Qt小坑:在使用Qt完成项目开发后,需要将其运行在嵌入式linux平台上,在设备启动后,经uboot引导和linux内核后,直接进入Qt应用程序。然而在进入Qt应用程序时,出现了卡顿的现象(也不能说是卡顿,就是在显示窗体的时候效果有点瑕疵),类似于下图所示效果:

嵌入式

(注:屏幕闪光是由于拍摄的影响)

注:使用的Qt版本为5.12.9

在Qt开发中,显示窗体有常见的几种方式:

【方式一】

嵌入式

【方式二】

嵌入式

以上两种代码写法,在实际嵌入式linux+Qt中,在显示窗体时都会先出现一个小图形界面然后再填充全屏,看上去就像卡顿了一样。

刚开始,怀疑是处理器性能问题,在软件启动前期加载受到了影响,但是所用的处理器在性能上应该还可以,于是乎,写了一个最简单的Qt demo来测试,发现问题同样存在,于是定位问题在Qt程序设计上。于是换了一种写法:

【方式三】

嵌入式

使用resize()重新设置大小,上述代码中1280和800是实际屏幕的像素比,然后使用show()显示窗体。通过这种方式,显示窗体的效果就变得好些了。效果如下:

嵌入式

(注:屏幕闪光是由于拍摄的影响)

在Qt中,显示窗体主要有以下几个函数:

 

void QWidget::show()

void QWidget::showFullScreen()

void QWidget::showMaximized()

void QWidget::showMinimized()

void QWidget::showNormal()

 

上述函数中,以下四个函数在Windows平台效果明显,运行也正常,在linux平台上,大概率会有些问题:

showFullScreen():以全屏模式显示小部件。

嵌入式


showMaximized():显示最大化的小部件。

嵌入式

showMinimized():显示最小化的小部件。

嵌入式


showNormal():显示正常的小部件。

嵌入式

可见,『方式三』的写法,运行出来的窗体显示效果要好很多了。




审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分