马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
效果:点击键盘空格键,窗口显示时间
还是把MainForm.ui.qml文件删除,把main.qml修改为:import QtQuick 2.5
import QtQuick.Window 2.2
Window {
id:window
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Rectangle {
color: "white"
width: window.width
height: window.height
focus:true
Keys.onSpacePressed: {//按空格键后发送消息
var msg = {'action': 'appendCurrentTime', 'model': listModel};//msg相当于一个字典
worker.sendMessage(msg);//在新线程里执行该操作 不阻塞ui线程
}
ListView {
anchors.fill: parent
model: listModel
delegate: Component {
Text { text: time }
}
ListModel { id: listModel }
WorkerScript {//在新线程执行操作,不阻塞ui线程,在父线程使用sendMessage发送消息 在子线程使用onMessage处理
id: worker
source: "dataloader.js" //加载js文件
}
}
}
}
在斜杠下新建dataloader.js文件,代码如下:WorkerScript.onMessage = function(msg) {
if (msg.action === 'appendCurrentTime') {//如果是指定动作
var data = {'time': new Date().toTimeString()};//获取当前时间
msg.model.append(data);//list添加新数据
msg.model.sync(); // 更新数据到ui
}
}
结束语:由于我的资质和精力有限qt quick编程只能讲到这。这只是一个入门级的介绍,也没有太多的文字描述,我觉得讲编程语言最好的方法就是用实例,因为只有用电脑的语言来讲电脑才会容易让人明白,就像学英语最好是在纯英语语境下学习一样。
接下来我要努力学习go语言了,这是我来到鱼C才认识到有这么一种集合了编译型和解释型语言优点的优秀编程语言。没时间了我要赶紧去学了,希望将来我能当上golang板块的版主 。最后感谢大家观看我的帖子,谢谢,谢谢! |