Qt Quick事件处理之鼠标 键盘 定时器

本文介绍了Qt Quick中如何处理鼠标、键盘和定时器事件。通过示例代码展示了MouseArea处理鼠标事件,包括变色矩形和鼠标区域的配置。接着讲解了键盘事件,使用Keys对象处理按键,如移动文本和选择复选框。最后,讨论了Timer对象用于实现倒计时程序。文章适合Qt Quick初学者,帮助理解事件处理机制。
摘要由CSDN通过智能技术生成

分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

               

    在《Qt Quick 事件处理之信号与槽》中介绍了 QML 中如何使用内建类型的信号以及如何自定义信号,这次我们来看看如何处理鼠标、键盘、定时器等事件。这些时间在处理时,通常是通过信号来完成的。

鼠标事件处理

    桌面开发的话,难免要处理鼠标事件……

变色矩形示例

    看一个简单的处理鼠标事件的例子,先看代码(handle_mouse.qml):

import QtQuick 2.0import QtQuick.Controls 1.1Rectangle {    width: 320;    height: 240;        MouseArea {        anchors.fill: parent;        acceptedButtons: Qt.LeftButton | Qt.RightButton;        onClicked: {            if(mouse.button == Qt.RightButton){                Qt.quit();            }            else if(mouse.button == Qt.LeftButton){                color = Qt.rgba((mouse.x % 255) / 255.0 , (mouse.y % 255) / 255.0, 0.6, 1.0);            }        }        onDoubleClicked: {            color = "gray";        }    }}

    使用 "qmlscene handle_mouse.qml" 命令,可以看到运行效果。上面的代码仅仅是绘制一个矩形,当鼠标左键按下时改变矩形区域的颜色,鼠标右键按下时退出应用。图 1 是刚运行时的效果:


            图1 handle_mouse.qml 初始运行效果

    图 2 是点击鼠标左键后的效果:


             图 2 鼠标左键点击后的效果

    如果你点一下鼠标右键,程序会退出。

    示例简陋,但足以说明如何处理鼠标事件,下面咱们慢慢来看。

MouseArea

    MouseArea 对象可以附加到一个 item 上供 item 处理鼠标事件,它本身是一个不可见的 item 。在其内部,可以直接引用它所附着的对象的属性和方法。你可以将 MouseArea 理解为它所附着的 item 的代理。

    MouseArea 有很多属性, enabled 用来控制是否处理鼠标事件,默认值是 true ,如果你设置为 false ,那么它所代理的 item 就会无视鼠标事件。 acceptedButtons 属性设定接收拿些个鼠标按键产生的事件(左键、右键、中键),示例代码 "acceptedButtons: Qt.LeftButton | Qt.RightButton;" 表示处理鼠标左键和右键。 

    作为一个 item , MouseArea 也拥有 anchors 属性,你可以使用它来描述有效的鼠标区域。示例代码 "anchors.fill:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值