QML 从无到有 2 (移动适配)

随着项目深入,需要移植到安卓上,问题来了,QML安卓适配!

幸好PC端程序和手机屏幕长宽比例相似。虽然单位像素,尺寸不同,通过比例缩放,可以实现组件PC和安卓通用代码。

第一步:定义全局的转换函数(300,500是你的PC端设计尺寸)

 1 property var x_scale:mainWindow.width/300
 2 property var y_scale:mainWindow.height/500
 3 
 4 function get_x(x)
 5 {
 6     return x*x_scale;
 7 }
 8 function get_y(y)
 9 {
10     return y*y_scale;
11 }

第二步:将所有相关尺寸的都通过上面的转换函数计算新值

1 Text {
2         id:nameText
3         x:get_x(8)
4         y:get_y(11)
5         width:get_x(80)
6         horizontalAlignment:Text.AlignRight
7         color: "#000000"
8         text: ""
9     }

第三步:对于有些控件,安卓和PC端表现形式不一样,需要通过判断平台,额外定义。判断平台代码

function is_android()
{
    return (Qt.platform.os == "android");
}

//调用方法
Image {
        id: imageLogo
        y: get_y(58)
        width: get_x(167)
        height: get_y(70)
        anchors.horizontalCenterOffset: is_android()?get_x(-8):get_x(-4)
        anchors.horizontalCenter: parent.horizontalCenter
        source: "logo.png"
    }

最后,对于字体的大小的适配,推荐使用pixelSize来定义,同样需要转换函数来计算新的尺寸,这样可以跟其他控件保持一致。

转载于:https://www.cnblogs.com/SamFang/p/5993500.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值