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

  • 相关阅读:
    无符号数和有符号数之间赋值和大小比较
    (转)关于Linux核心转储文件 core dump
    mysql忘记root密码解决办法
    CentOS7安装iptables防火墙
    CENTOS7下安装REDIS
    iptables命令(备忘)
    ps 命令详解
    virtualenv
    How to Baskup and Restore a MySQL database
    linux 用户/用户组添加修改删除(ubuntu/centos)
  • 原文地址:https://www.cnblogs.com/SamFang/p/5993500.html
Copyright © 2011-2022 走看看