美文网首页
24--Qt Quick事件处理---鼠标-会动的文本实例

24--Qt Quick事件处理---鼠标-会动的文本实例

作者: lvyweb | 来源:发表于2019-06-14 13:43 被阅读0次

标签(空格分隔): Qt


import QtQuick 2.0
import QtQuick.Controls 2.2

Rectangle {
    width: 320;
    height: 480;
    color: "grey";
    focus: true;
    Keys.enabled: true;
    Keys.onEscapePressed: {
        Qt.quit();
    }
    Keys.forwardTo: [moveText,likeQt];//转发给id为moveText的Text对象和id为likeQt的Checkbox对象,moveText在前面,如果它消耗掉某个键,likeQt就收不到了

    Text {
        id: moveText;
        x: 20;
        y: 20;
        width: 200;
        height: 30;
        text: "Moving Text";
        color: "blue";
        font {bold: true;pixelSize: 24}
        Keys.enabled: true;
        Keys.onPressed: {
            switch(event.key){
            case Qt.Key_Left:
                x -= 10;
                break;
            case Qt.Key_Right:
                x += 10;
                break;
            case Qt.Key_Down:
                y += 10;
                break;
            case Qt.Key_Up:
                y -= 10;
                break;
            default:
                return;

            }
            event.accepted = true;
        }
    }
    CheckBox{
        id: likeQt;
        text: "Like Qt Quick";
        anchors.left: parent.left;
        anchors.leftMargin: 10;
        anchors.bottom: parent.bottom;
        anchors.bottomMargin: 10;
        z:1;
    }
}


这个示例通过上、下、左、右4个按键移动一个文本串,按空格键选中复选框,按Esc键退出应用。

Key对象与信号处理器
Keys对象是Qt Quick 提供的,专门提供item处理按键事件的对象。它定义了很多针对特定按键的信号,比如returnPressed、escapePressed、downPressed、digit0Pressed、backPressed等;它还定义了更为普通的pressed和released信号。一般地,你可以使用这两个信号来处理大部分按键,它们有一个名字是event、类型是KeyEvent的参数,包含了按键的详细信息。

KeysEvent代表一个按键事件,如果一个按键被处理,event.accepted应该被设置成true,以免它被继续传递,要是你不设置它,那它有可能会继续传递给其他的Item,出现一些奇怪的问题。

Keys有三个属性。

enabled属性控制是否处理按键。

forwardTo属性是列表类型,它表示传递按键事件给列表内的对象,如果某个对象accept了某个按键,那位列其后的对象就不会收到该按键事件。

priority属性允许你设置Keys附加属性的优先级,有两种:在Item之前处理按键(默认行为)、在Item之后处理按键。

Qt Quick提供的一些元素本身会处理按键,比如示例中的CheckBox,它响应空格键来选中或取消选中复选框,而我们不需要给它附加Keys对象来再次处理按键事件。

相关文章

  • 24--Qt Quick事件处理---鼠标-会动的文本实例

    标签(空格分隔): Qt 这个示例通过上、下、左、右4个按键移动一个文本串,按空格键选中复选框,按Esc键退出应用...

  • 23--Qt Quick事件处理---鼠标

    标签(空格分隔): Qt 桌面开发,难免要处理鼠标事件的例子。 变色矩形的例子 运行效果,上面的代码仅仅是绘制一个...

  • 你知道页面上常见的事件类型吗

    我们常用的事件类型有UI事件,焦点事件,鼠标事件,滚轮事件,键盘事件和文本事件,用了跨浏览器添加事件处理程序的方法...

  • JavaScript中的事件与异常捕获详析

    事件处理【onClick】单击事件、【onMouseOver】鼠标经过事件、【onMouseOut】鼠标移出事件、...

  • day15-总结

    pygame的鼠标事件 两个实例:

  • javascript笔记10

    事件处理程序 焦点事件 鼠标事件-单击与双击 鼠标事件-mouserover/mouserout/mousedow...

  • DOM事件探秘(2)事件类型

    DOM有不同的事件类型,按大类分有鼠标事件,键盘事件。根据《DOM事件探秘》文章,我们来做几个综合实例。 鼠标事件...

  • 第十周第一天笔记

    百度搜索框实例 思路:给input添加鼠标聚焦事件和键盘抬起事件;目的:获取数据,绑定数据判断:判断文本框中是否存...

  • JAVAFX事件 笔记

    1.JavaFX中的事件 1.1鼠标事件 1.2键事件 2.处理步骤 3.鼠标事件 在MouseEvent 对象里...

  • CImg中文手册3

    现在开始一个基于CImg的程序的例子;演示了如何使用CImg来加载、创建图像实例;以及如何显示图像和处理鼠标事件;...

网友评论

      本文标题:24--Qt Quick事件处理---鼠标-会动的文本实例

      本文链接:https://www.haomeiwen.com/subject/kngufctx.html