日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

QML 性能优化建议(二)

發(fā)布時間:2025/1/21 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QML 性能优化建议(二) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

接前一篇文章,QML 性能優(yōu)化建議(一),這里接著來介紹性能優(yōu)化建議的第二部分:通用接口元素,在這里會介紹一些常見的元素,如:圖片、布局之類的寫法。

通用接口元素

圖片

圖片是任何用戶界面的重要組成部分,但是由于加載圖片所花費的時間以及內(nèi)存占用問題,將會是影響性能的一個很大的因素。

異步加載

如果加載的圖片非常大,那么在加載的時候要保證不會阻止UI線程。可以將QML Image元素的“異步”屬性設(shè)置true,然后啟用從本地文件系統(tǒng)異步加載圖像(如果是網(wǎng)絡(luò)上的圖像始終是異步加載),這樣不會導致界面卡頓。

設(shè)置為“異步”屬性將在低優(yōu)先級工作線程中加載圖像。

顯式來源大小

如果應(yīng)用程序加載大圖像但是將其顯示在一個小尺寸元素中,可以將“sourceSize”屬性設(shè)置為要渲染的元素的大小,以確保圖像的較小比例版本保留在內(nèi)存中,而不是原圖片尺寸大小,這樣可以節(jié)省內(nèi)存消耗。

請注意,更改sourceSize將導致重新加載圖像。

避免運行時組合

這里需要注意的是,如果所最終呈現(xiàn)出來效果中需要有幾張圖片拼接的情況,那么可以在直接提供已經(jīng)拼接好的圖片,這樣避免在運行時進行合成。(比如帶陰影效果的元素)

避免平滑圖像

image.smooth僅在需要時啟用。在某些硬件上速度較慢,如果圖像以其自然尺寸顯示,則沒有視覺效果。

繪畫

避免在同一個區(qū)域進行多次重復繪制。盡量使用Item作為根元素而不是Rectangle以避免多次繪制背景。

布局

在元素布局的時候盡量使用錨布局的方式,不要使用直接綁定固定位置,如設(shè)置 x 和 y 值。
看如下示例:

Rectangle {id: rect1x: 20width: 200; height: 200 } Rectangle {id: rect2x: rect1.xy: rect1.y + rect1.heightwidth: rect1.width - 20height: 200 }

可以替代成如下方式:

Rectangle {id: rect1x: 20width: 200; height: 200 } Rectangle {id: rect2height: 200anchors.left: rect1.leftanchors.top: rect1.bottomanchors.right: rect1.rightanchors.rightMargin: 20 }

使用綁定位置的方式(通過將綁定表達式分配給可視對象的x,y,width和height屬性,而不是使用錨點)相對較慢,盡管它允許最大的靈活性。

如果布局不是動態(tài)的,則指定布局的最佳方式是通過x,y,width和height屬性的靜態(tài)初始化。項目坐標始終相對于其父項,因此如果您想要與父項的0,0坐標成固定偏移,則不應(yīng)該使用錨布局的方式。在下面的示例中,子Rectangle對象位于相同的位置,使用直接綁定位置的方式效率會更高:

Rectangle {width: 60height: 60Rectangle {id: fixedPositioningx: 20y: 20width: 20height: 20}Rectangle {id: anchorPositioninganchors.fill: parentanchors.margins: 20} }

總結(jié)

以上是生活随笔為你收集整理的QML 性能优化建议(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。