一直想動手試試qml,正好公司有個企業app是蘋果的,我窮屌絲,買不起,後臺我作的,我知道接口,就來個android的,qml之前只是看過,沒有動手作東西。這是個練手的機會。html
先來幾幅圖片看看效果android
這是在個人ZTE紅牛手機上運行的效果,android4.3。ios
這個小的app程序使用qml和js,文件操做使用了不多的C++來完成。網絡
qml相似與html語言,在寫界面時,其能夠直白的來描述界面元素,非常方便。js的靈活性是業務邏輯寫起來很順手。app
在這個過程當中,我第一次寫這個,不靈活,原本爲了代碼的可維護行,我想將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_); }
不過這個體驗很好,qml+js。post
qml定製控件很方便,好比上圖中的按鈕和相似與ios上的選擇的那個(day or hour)都是定製的,還有提示網絡操做正在進行的,很簡單就實現了想要的效果。
ui