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来定义,同样需要转换函数来计算新的尺寸,这样可以跟其他控件保持一致。

posted @ 2016-10-24 16:29  上位机  阅读(947)  评论(0编辑  收藏  举报