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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

QML适配不同设备

發布時間:2025/1/21 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QML适配不同设备 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文地址:http://blog.csdn.net/zhx6044/article/details/44180819

前言

做嵌入式和移動開發,不同的設備,不同的分辨率需要UI能夠適配,這是一個很現實的問題。QML作為Qt中為UI而生的,使用QML一定要解決適配的問題。

分辨率

現在同一尺寸的屏幕,其分辨率也是不同,在QML中使用?anchors?進行相對的布局時,其是以像素為單位。現在有一個概念,叫做每英寸像素數目。當設備的PPI不同時,控件的大小不同,這可能導致,如果設計是在一個尺寸小PPI低的屏幕上設計,將程序放到一個尺寸大PPI高的設備上,那么控件看上去就更小了,所以在QML中直接使用像素布局是不可取的。

Screen

QML中提供的Screen為我們提供了設備相關的數據,其中很重要的是DPI(Devices per mm pixel),設備每毫米的像素點,通過這個我們就可以以mm為標準來做布局,這樣我們就不會出現,在高分辨率的設備上,控件變得很小。

property real dpi: Screen.pixelDensity.toFixed(2)
  • 1
  • 1

設備一個屬性,取兩個小數點。那么可以這樣設置

anchors {top:parent.top; topMargin: 2 * dpi;}
  • 1
  • 1

這個控件離parent上部 2mm,不管在那個設備上,其表現都是一樣的,那么對于控件的長和寬表現也是一樣的。

我們設計界面的時候肯定在一個尺寸上設計,那么如果換了一個很大的設備,那么控件就不適合了,那么我們需要有一點伸縮性。

伸縮

Screen.height和Screen.width為當前的顯示設備的長和寬,但是他們是像素,得到實際的尺寸,需要除以dpi。?
假設我們設計的時候的長和寬為a和b,運行時得到的長和寬為c和d。?
那么在布局的時候就應該是這樣的

anchors {top:parent.top; topMargin: 2 * dpi * (d/b);}
  • 1
  • 1

那么對于控件的長和寬也是一樣的,這樣我們就實現了在不同的設備上實現控件和控件間隔隨尺寸大小不同伸縮。

總結

以上是生活随笔為你收集整理的QML适配不同设备的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。