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

  • 相关阅读:
    【转】memcached分布式部署
    【转】分布式与集群的区别
    [转]memcached+magent实现memcached集群
    [转]Memcache的原理和命中率的总结
    [转]PHP SOCKET编程
    [转]Hive安装及使用攻略
    [转]Linux的SOCKET编程详解
    Git介绍
    [转]wget 下载整个网站,或者特定目录
    [转]五种常见的 PHP 设计模式
  • 原文地址:https://www.cnblogs.com/SamFang/p/5993500.html
Copyright © 2011-2022 走看看