鱼C论坛

 找回密码
 立即注册
查看: 3245|回复: 0

[技术原创] QT动画制作(完结)

[复制链接]
发表于 2017-3-23 07:39:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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板块的版主 。最后感谢大家观看我的帖子,谢谢,谢谢!

评分

参与人数 1荣誉 +6 鱼币 +6 贡献 +3 收起 理由
不二如是 + 6 + 6 + 3 为什么要这么快~~~

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 14:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表