Qt移动应用开发(一):适配不一样的屏幕

Qt移动应用开发(一):适配不一样的屏幕

         到眼下为止。Qt5.3已经出现很是长一段时间了。并且已经有一些应用使用Qt进行构建了。我本身也完毕了第一款使用Qt构建的手机游戏《吃药了》。那么接下来的几篇文章主要向你们分享我是如何使用Qt进行移动开发的。Qt移动应用开发分为多篇博客文章,每一篇文章都力求精简不罗嗦。力求为你们提供一个快捷的參考。我在这里也主要将使用Qt制做《吃药了》的方法技巧一一分享给你们。css

         说到移动应用开发,第一想到的就是Android了,的确。android

Digia事实上在为Qt制定向移动进军的道路的时候充分地考虑了眼下移动市场。首先Android是开源的,能够争取到很是多软硬件厂商,其次iOS是一款优秀的移动操做系统。最后Windows Phone 7/8也蓄势待发,所以Digia主要在Qt5.0的时候引入了QPA的概念。这让平台适配变得easy起来;Qt5.1的时候实现了Android操做系统的适配;Qt5.2的时候实现了iOS系统的适配;Qt5.3的时候实现了Windows Phone的适配。固然一些小众移动开发平台比方说BB十、Ubuntu Phone和Jolla则是倒贴到Qt上来了。因此至此Qt已经能够适应绝大多数移动平台,再加上嵌入式领域的一枝独秀,Qt其实已经成为适配平台最多的框架了。框架

         只是,哪怕是适配Android一个平台,由于Android系统的碎片化以及Android应用是独占屏幕大小的,致使开发人员在开发应用的时候不得不考虑屏幕的分辨率。那么Qt是怎样想办法实现的不一样屏幕的适配呢?假设你是使用纯C++开发的Qt框架。那么个人另一篇文章可以帮助你。现在我主要介绍一下QML是怎样解决的。布局

一、使用锚布局方式

         QML使用了一种叫锚布局(anchorlayout)的布局方式,这就比如是知道了某个控件的相对位置,而后另一个控件使用锚布局的方式很是快就知道依据此控件该怎样摆放。比方说这个截图:post

         右下角的“copyright@jcystudio”就是使用锚布局进行排列的:ui

Text
{
         anchors.bottom:parent.bottom
         anchors.right:parent.right
         text:"copyright©jcystudio"
}

二、使用Screen来获取屏幕分辨率 

使用锚布局可能还不够,因为图片等元素一旦碰上了小分辨率的屏幕就会显示不全。这种用户体验是很是差的。需要缩放才行。那么问题就转化为怎样知道屏幕的分辨率大小呢?这里咱们採用QtQuick.Window 2.1中的Screen类。即便用Screen.width和Screen.height来获取获取屏幕的大小。spa

         最后分享一下我开发《吃药了》Android和桌面版适配屏幕分辨率的方法:操作系统

Window
{
   id: root
   width: Qt.platform.os === "android"?

Screen.width: 320 height: Qt.platform.os === "android"?.net

Screen.height: 480 …… }code

         这段代码的意思是假设当前的操做系统是Android。那么使用Android屏幕的原始分辨率。不然的话採用的是320×480的配置。

如下是两幅图的对照:

如下是还有一个我开发的应用适配不一样分辨率的对照:



         本文已參加《CSDN博文大赛》,请投我一票,支持不少其它Qt移动开发的原创内容!

相关文章
相关标签/搜索