Qt Quick 事件处理之信号与槽

本文深入探讨了Qt Quick中的事件处理,重点讲解了信号与槽的概念和使用。首先介绍了qmlscene工具及其在验证QML效果中的作用,接着详细阐述了如何连接和处理QML类型的已知信号,包括信号处理器、附加信号处理器和Connections的用法。此外,还解释了如何查找感兴趣的信号以及如何定义和使用自定义信号。最后,讨论了使用signal对象连接信号与槽的灵活性。
摘要由CSDN通过智能技术生成

    前面两篇文章《QML 语言基础》和《Qt Quick 简单教程》中我们介绍了 QML 语言的基本语法和 Qt Quick 的常见元素,亲们,通过这两篇文章,您应该已经可以完成简单的 Qt Quick 应用了。接下来呢,哈,我们要介绍 Qt Quick 中一个灰常灰常重要的主题:事件处理。这将是比较长长长长的一篇,哦,不还有后续好几篇……废话少说,还是谈正事儿吧兄弟姐妹们。

    本文是作者 Qt Quick 系列文章中的一篇,其它文章在这里:

    GUI 应用都是基于事件的(同学,这么说对吗?),不管是用 C++ 还是用 QML ,你的应用都要处理事件,否则的话,哼哼,要你好看!当然当然,你也可以什么事儿不干,就搭个静态界面放那里欣赏……

    Qt Quick 最大的一个特点,是与 Qt 元对象系统的结合;而这里边,我们熟稔的,鼎鼎大名大名鼎鼎的,要不断打交道的,就是信号与槽了。历史是割不断的,继承与发展才是正确的价值观……,了解过 Qt 的开发者一定对信号与槽印象深刻。在 QML 中,在 Qt Quick 中,要想妥善的处理各种事件,同样离不开信号与槽。所以呢,在介绍具体的事件之前,我们先要介绍 QML 中如何使用信号与槽。

    为了演示本文的示例,我们先介绍一个工具: qmlscene 。

qmlscene 工具

    这是 Qt 框架提供的便利工具,使用它,你可以不用建立项目不用撰写 C++ 代码,就可以看到你编写的 qml 文件的效果。我们以 Windows 7 系统为例, qmlscene 需要在命令行窗口中使用。你可以这样打开 Qt 自带的命令行开发环境,参考图 1 找到命令行环境的快捷方式:


            图 1 Qt 命令行环境的快捷方式

    一旦你打开了命令行工具,它会帮你设置好 Qt 需要的环境变量,敲一个 qmake 命令试试吧。如和 图 2 所示:


            图 2 Qt 命令行开发环境

    如果你想知道 qmlscene 工具的详细用法,请输入 qmlscene --help 命令。如图 3 :


            图 3  qmlscene 的帮助

    现在,使用 cd 命令切换到你存放 qml 文档的目录下,就可以验证 qml 的效果了。只需要执行这样的命令: qmlscene yourapp.qml 。当然,yourapp.qml 要替换为你实际的 qml 文档的名字。我这里只是示例。如果你直接输入 qmlscene 命令来执行,那么它会打开一个文件选择对话框,让你选择一个 qml 文档,当你选择了之后呢,该文档对应的界面就会显示出来。我建议你使用 qmlscene yourapp.qml 这种方式,无它,唯快尔。

    来看一个简单的 Hello World ,qml 文档是 hello_world.qml ,内容如下:

import QtQuick 2.0
import QtQuick.Controls 1.1

Rectangle {
    width: 320;
    height: 240;
    color: "gray";
    
    Text {
        anchors.centerIn: parent;
        text: "Hello World!";
        color: "blue";
        font.pixelSize: 32;
    }
}

    在命令行环境执行 qmlscene hello_world.qml ,效果如图 4 所示:


            图 4 使

评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

foruok

你可以选择打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值