99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Qt應(yīng)用程序出現(xiàn)卡頓的現(xiàn)象怎么解決呢

工程師鄧生 ? 來源:嵌入式小生 ? 作者:iriczhao ? 2022-09-23 10:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文描述一個以前小生在工作中遇到的一個Qt小坑:在使用Qt完成項目開發(fā)后,需要將其運行在嵌入式linux平臺上,在設(shè)備啟動后,經(jīng)uboot引導(dǎo)和linux內(nèi)核后,直接進(jìn)入Qt應(yīng)用程序。然而在進(jìn)入Qt應(yīng)用程序時,出現(xiàn)了卡頓的現(xiàn)象(也不能說是卡頓,就是在顯示窗體的時候效果有點瑕疵),類似于下圖所示效果:

60a964d2-3ad6-11ed-9e49-dac502259ad0.gif

(注:屏幕閃光是由于拍攝的影響)

注:使用的Qt版本為5.12.9

在Qt開發(fā)中,顯示窗體有常見的幾種方式:

【方式一】

6153ddc2-3ad6-11ed-9e49-dac502259ad0.png

【方式二】

6186c44e-3ad6-11ed-9e49-dac502259ad0.png

以上兩種代碼寫法,在實際嵌入式linux+Qt中,在顯示窗體時都會先出現(xiàn)一個小圖形界面然后再填充全屏,看上去就像卡頓了一樣。

剛開始,懷疑是處理器性能問題,在軟件啟動前期加載受到了影響,但是所用的處理器在性能上應(yīng)該還可以,于是乎,寫了一個最簡單的Qt demo來測試,發(fā)現(xiàn)問題同樣存在,于是定位問題在Qt程序設(shè)計上。于是換了一種寫法:

【方式三】

61a49f0a-3ad6-11ed-9e49-dac502259ad0.png

使用resize()重新設(shè)置大小,上述代碼中1280和800是實際屏幕的像素比,然后使用show()顯示窗體。通過這種方式,顯示窗體的效果就變得好些了。效果如下:

61bb2658-3ad6-11ed-9e49-dac502259ad0.gif

(注:屏幕閃光是由于拍攝的影響)

在Qt中,顯示窗體主要有以下幾個函數(shù):

voidQWidget::show()

voidQWidget::showFullScreen()

voidQWidget::showMaximized()

voidQWidget::showMinimized()

voidQWidget::showNormal()

上述函數(shù)中,以下四個函數(shù)在Windows平臺效果明顯,運行也正常,在linux平臺上,大概率會有些問題:

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

655a14ae-3ad6-11ed-9e49-dac502259ad0.png


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

65969c6c-3ad6-11ed-9e49-dac502259ad0.png

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

65b92bf6-3ad6-11ed-9e49-dac502259ad0.png


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

65e7ebd0-3ad6-11ed-9e49-dac502259ad0.png

可見,『方式三』的寫法,運行出來的窗體顯示效果要好很多了。




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5152

    文章

    19676

    瀏覽量

    317723
  • Uboot
    +關(guān)注

    關(guān)注

    4

    文章

    129

    瀏覽量

    29106
  • LINUX內(nèi)核
    +關(guān)注

    關(guān)注

    1

    文章

    317

    瀏覽量

    22413

原文標(biāo)題:經(jīng)驗 | 如何破Qt窗體的“卡頓”

文章出處:【微信號:嵌入式小生,微信公眾號:嵌入式小生】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    求大神賜教:Labview程序,運行3-4小時,就會出現(xiàn)現(xiàn)象

    求大神賜教:本人是剛剛?cè)腴T者。Labview程序生成exe文件后,在Windows系統(tǒng)下運行3-4小時,就會出現(xiàn)。本程序涉及到上位機(jī)與下
    發(fā)表于 11-22 16:41

    VeriStand運行時出現(xiàn)現(xiàn)象,如何解決?

    、History Length為50 sec、Update Rate為10Hz。問題現(xiàn)象:然后運行該工程到仿真機(jī)中,界面一開始就會出現(xiàn)現(xiàn)象
    發(fā)表于 06-06 20:39

    運行VeriStand的過程中出現(xiàn)現(xiàn)象,如何解決?

    、History Length為50 sec、Update Rate為10Hz。問題現(xiàn)象:然后運行該工程到仿真機(jī)中,界面一開始就會出現(xiàn)現(xiàn)象
    發(fā)表于 06-09 10:25

    通過VeriStand加載MATLAB模型到實時仿真機(jī),VeriStand出現(xiàn)現(xiàn)象

    、History Length為50 sec、Update Rate為10Hz。問題現(xiàn)象:然后運行該工程到仿真機(jī)中,界面一開始就會出現(xiàn)現(xiàn)象
    發(fā)表于 06-09 10:28

    VeriStand出現(xiàn)現(xiàn)象

    、History Length為50 sec、Update Rate為10Hz。問題現(xiàn)象:然后運行該工程到仿真機(jī)中,界面一開始就會出現(xiàn)現(xiàn)象
    發(fā)表于 06-09 10:29

    在下使用LABVIEW時遇到,當(dāng)程序運行時,前面板波形圖表顯示出現(xiàn)現(xiàn)象是怎么回事?

    各位大神,在下使用LABVIEW時遇到,當(dāng)程序運行時,前面板波形圖表顯示出現(xiàn)現(xiàn)象,即波形圖表內(nèi)顯示的波形靜止幾秒后更新一次,然后再靜止幾
    發(fā)表于 04-26 19:26

    在匿名四軸上位機(jī)上顯示時出現(xiàn)現(xiàn)象

    出現(xiàn)這一問題的程序是我在F4提供的例程上稍作修改寫的程序,由于還未學(xué)習(xí)LCD,刪除了有關(guān)LCD的代碼。主循環(huán)中的代碼比例程中的更少,而且也沒有延時函數(shù)影響。為什么最后在匿名四軸上位機(jī)上顯示時
    發(fā)表于 05-20 22:41

    STM32+uc/os II+uc/gui顯示出現(xiàn)白屏現(xiàn)象

    之前移植了uc/os II,創(chuàng)建了多個任務(wù),包括LCD顯示任務(wù),均能正常運行!后面移植了uc/gui,將LCD顯示任務(wù)中的顯示函數(shù)換成uCGUI的函數(shù),顯示出現(xiàn)白屏現(xiàn)象?。。?!之前
    發(fā)表于 03-18 04:35

    Qt編譯以前的應(yīng)用程序缺失請問怎么解決

    Qt 編譯以前的應(yīng)用程序出現(xiàn)找不到 -lGLESv2 -lQt5Sql -lQt5Netword -lQt5Core 這個到底是Qt的問題,還是應(yīng)用
    發(fā)表于 01-14 08:32

    NUC123SD4AN0連接IMAC出現(xiàn)回放和斷續(xù)現(xiàn)象怎么解決?

    我使用NUC123SD4AN0通過SPI,I2S連接AUDIO DSP, DSO接一個AKM CODEC.這個設(shè)備主要相當(dāng)于一個AUDIO MIC設(shè)備,當(dāng)USB連接WINDOWS PC的時候,設(shè)備工作正常,但是當(dāng)連接APPLE MAC電腦的時候,出現(xiàn)明顯的回放
    發(fā)表于 06-15 07:10

    基于QT/Embedded的可變情報板應(yīng)用程序開發(fā)

    基于QT/Embedded的可變情報板應(yīng)用程序開發(fā) QT是奇趣科技推出的一種多平臺的C++圖形用戶界面應(yīng)用程序框架。它包括QT開發(fā)庫
    發(fā)表于 03-03 09:36 ?877次閱讀

    基于QT/Embedded的可變情報板應(yīng)用程序開發(fā)

    基于QT/Embedded的可變情報板應(yīng)用程序開發(fā)  0引言   QT是奇趣科技推出的一種多平臺的C++圖形用戶界面應(yīng)用程序框架。它包括QT
    發(fā)表于 03-09 10:39 ?1012次閱讀

    解決蘋果ios10.3.2耗電快及現(xiàn)象的方法

    最近,又有了一個困惑無數(shù)果粉的問題,有果粉反映,自從更新了ios10.3.2之后,手機(jī)就耗電十分快,甚至還會出現(xiàn)現(xiàn)象。所以,要怎樣解決
    發(fā)表于 04-15 10:56 ?9414次閱讀

    嵌入式Linux應(yīng)用程序開發(fā)-(1)第一個嵌入式QT應(yīng)用程序

    第一個嵌入式QT應(yīng)用程序在成功安裝 Qt Creator 開發(fā)環(huán)境后,我們通過一個簡單的嵌入式Qt應(yīng)用程序,來說明一下如何構(gòu)建和編譯一個
    發(fā)表于 11-01 17:21 ?16次下載
    嵌入式Linux<b class='flag-5'>應(yīng)用程序</b>開發(fā)-(1)第一個嵌入式<b class='flag-5'>QT</b><b class='flag-5'>應(yīng)用程序</b>

    A40i應(yīng)用筆記 | Qt應(yīng)用程序開發(fā)工具 Qt Creator的安裝及使用

    簡介本文主要介紹Qt應(yīng)用程序開發(fā)工具QtCreator的安裝及使用飛凌移植好的Qt的SDK來搭建Qt應(yīng)用程序開發(fā)環(huán)境的方法。Ubuntu環(huán)境
    的頭像 發(fā)表于 02-25 10:03 ?2098次閱讀
    A40i應(yīng)用筆記 | <b class='flag-5'>Qt</b><b class='flag-5'>應(yīng)用程序</b>開發(fā)工具 <b class='flag-5'>Qt</b> Creator的安裝及使用