alltolove 发表于 2017-3-23 07:39:40

QT动画制作(完结)

效果:点击键盘空格键,窗口显示时间
还是把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板块的版主{:5_92:} 。最后感谢大家观看我的帖子,谢谢,谢谢!{:5_110:}
页: [1]
查看完整版本: QT动画制作(完结)