本文描述一个以前小生在工作中遇到的一个Qt小坑:在使用Qt完成项目开发后,需要将其运行在嵌入式linux平台上,在设备启动后,经uboot引导和linux内核后,直接进入Qt应用程序。然而在进入Qt应用程序时,出现了卡顿的现象(也不能说是卡顿,就是在显示窗体的时候效果有点瑕疵),类似于下图所示效果:
(注:屏幕闪光是由于拍摄的影响)
注:使用的Qt版本为5.12.9
在Qt开发中,显示窗体有常见的几种方式:
【方式一】
【方式二】
以上两种代码写法,在实际嵌入式linux+Qt中,在显示窗体时都会先出现一个小图形界面然后再填充全屏,看上去就像卡顿了一样。
刚开始,怀疑是处理器性能问题,在软件启动前期加载受到了影响,但是所用的处理器在性能上应该还可以,于是乎,写了一个最简单的Qt demo来测试,发现问题同样存在,于是定位问题在Qt程序设计上。于是换了一种写法:
【方式三】
使用resize()重新设置大小,上述代码中1280和800是实际屏幕的像素比,然后使用show()显示窗体。通过这种方式,显示窗体的效果就变得好些了。效果如下:
(注:屏幕闪光是由于拍摄的影响)
在Qt中,显示窗体主要有以下几个函数:
voidQWidget::show() voidQWidget::showFullScreen() voidQWidget::showMaximized() voidQWidget::showMinimized() voidQWidget::showNormal()
上述函数中,以下四个函数在Windows平台效果明显,运行也正常,在linux平台上,大概率会有些问题:
showFullScreen():以全屏模式显示小部件。
showMaximized():显示最大化的小部件。
showMinimized():显示最小化的小部件。
showNormal():显示正常的小部件。
可见,『方式三』的写法,运行出来的窗体显示效果要好很多了。
审核编辑:刘清
-
嵌入式
+关注
关注
5082文章
19115浏览量
304893 -
Uboot
+关注
关注
4文章
125浏览量
28219 -
LINUX内核
+关注
关注
1文章
316浏览量
21646
原文标题:经验 | 如何破Qt窗体的“卡顿”
文章出处:【微信号:嵌入式小生,微信公众号:嵌入式小生】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论