qt for android

53 篇文章 36 订阅
8 篇文章 0 订阅

一直想动手试试qml,正好公司有个企业app是苹果的,我穷屌丝,买不起,后台我做的,我知道接口,就来个android的,qml以前只是看过,没有动手做东西。这是个练手的机会。

先来几幅图片看看效果

这是在我的ZTE红牛手机上运行的效果,android4.3。

这个小的app程序使用qml和js,文件操作使用了很少的C++来完成。

qml类似与html语言,在写界面时,其可以直白的来描述界面元素,很是方便。js的灵活性是业务逻辑写起来很顺手。

在这个过程中,我第一次写这个,不灵活,本来为了代码的可维护行,我想将js代码独立出来,可是发现这个有点麻烦,js需要操作界面元素,然后我只能独立出来逻辑,然后用js回调函数来实现。比如网络操作:

.pragma library

function post(url_, data_, root, fun_, fun_1) {
    var xml_http_request = new XMLHttpRequest();

    xml_http_request.onreadystatechange = function() {
        if (xml_http_request.readyState === 4 && xml_http_request.status === 200) {
            timer.stop()
            fun_(xml_http_request.responseText);
        }
    }

    xml_http_request.open("POST", url_, true);
    xml_http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    //xml_http_request.timeout = 3000
    //xml_http_request.ontimeout = fun_1
    var timer = Qt.createQmlObject("import QtQuick 2.3; Timer {interval: 10000; repeat: false; running: true;}",root,"MyTimer");
    timer.triggered.connect(function(){
        console.log("close")
        xml_http_request.abort();
        fun_1();
    });
    xml_http_request.send(data_);


}


qt中的js不支持timeout,所以使用了定时器,为了处理响应和超时,传了两个函数进来。

不过这个体验很好,qml+js。

qml定制控件很方便,比如上图中的按钮和类似与ios上的选择的那个(day or hour)都是定制的,还有提示网络操作正在进行的,很简单就实现了想要的效果。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值