Qt移動應用開發(一) 適配不同的螢幕

2021-09-07 11:37:57 字數 1567 閱讀 4123

到眼下為止。qt5.3已經出現非常長一段時間了。而且已經有一些應用使用qt進行構建了。我自己也完畢了第一款使用qt構建的手機遊戲《吃藥了》。那麼接下來的幾篇文章主要向大家分享我是如何使用qt進行移動開發的。qt移動應用開發分為多篇部落格文章,每一篇文章都力求精簡不羅嗦。力求為大家提供乙個快捷的參考。我在這裡也主要將使用qt製作《吃藥了》的方法技巧一一分享給大家。

說到移動應用開發,第一想到的就是android了,的確。

digia事實上在為qt制定向移動進軍的道路的時候充分地考慮了眼下移動市場。首先android是開源的,可以爭取到非常多軟硬體廠商,其次ios是一款優秀的移動作業系統。最後windows phone 7/8也蓄勢待發,因此digia主要在qt5.0的時候引入了qpa的概念。這讓平台適配變得easy起來;qt5.1的時候實現了android作業系統的適配;qt5.2的時候實現了ios系統的適配;qt5.3的時候實現了windows phone的適配。當然一些小眾移動開發平台比方說bb10、ubuntu phone和jolla則是倒貼到qt上來了。所以至此qt已經可以適應絕大多數移動平台,再加上嵌入式領域的一枝獨秀,qt其實已經成為適配平台最多的框架了。

只是,哪怕是適配android乙個平台,因為android系統的碎片化以及android應用是獨佔螢幕大小的,導致開發人員在開發應用的時候不得不考慮螢幕的解析度。那麼qt是怎樣想辦法實現的不同螢幕的適配呢?假設你是使用純c++開發的qt框架。那麼我的另外一篇文章能夠幫助你。如今我主要介紹一下qml是怎樣解決的。

qml使用了一種叫錨布局(anchorlayout)的布局方式,這就好比是知道了某個控制項的相對位置,然後另外乙個控制項使用錨布局的方式非常快就知道依據此控制項該怎樣擺放。比方說這個截圖:

使用錨布局可能還不夠,由於等元素一旦碰上了小解析度的螢幕就會顯示不全。這種使用者體驗是非常差的。須要縮放才行。那麼問題就轉化為怎樣知道螢幕的解析度大小呢?這裡我們採用qtquick.window 2.1中的screen類。即使用screen.width和screen.height來獲取獲取螢幕的大小。

最後分享一下我開發《吃藥了》android和桌面版適配螢幕解析度的方法:

window

這段**的意思是假設當前的作業系統是android。那麼使用android螢幕的原始解析度。否則的話採用的是320×480的配置。

以下是兩幅圖的對照:

以下是還有乙個我開發的應用適配不同解析度的對照:

本文已參加《csdn博文大賽》,請投我一票,支援很多其它qt移動開發的原創內容!

qt觸控螢幕的適配層tslib

使用ts calibrate校準觸控螢幕時,要觸控5個點,這時假如gui應用端在執行其他響應觸控事件 滑鼠事件 的程式就會出現錯亂。所以安全的做法應該是在校準觸控螢幕時進行鎖屏操作。解決這兩個問題之前來看看tslib校準方面的原理,假如將原理搞清楚,剩下就是方法實現的問題了。tslib 是觸控螢幕驅...

vue適配不同螢幕大小 移動端適配的幾種方案

適配思路 設計稿 750 1334 開發 適配不同的手機螢幕,使其顯得合理 原則開發時方便,寫 時設定的值要和標註的 160px 相關 方案要適配大多數手機螢幕,並且無 bug 使用者體驗要好,頁面看著沒有不適感 思路寫頁面時,按照設計稿寫固定寬度,最後再統一縮放處理,在不同手機上都能用 按照設計稿...

移動應用開發的內容

移動應用開發的內容包括 如何在應用環境中設計 建立和整合sms短訊息應用 如何建立能夠充分利用sim卡功能的 如何在3g 中使用微瀏覽器和微web伺服器 如何在現代網路中建立具有前導性的移動商務應用 如何從伺服器或膝上電腦上傳送和接收sms短訊息 如何使用介面和其他必需的元件 如何為公司網路及vpn...