Qt Quick 4小时入门

第七章:处理鼠标与键盘事件

1、处理鼠标事件
鼠标信号传递一个MouseEvent类型的mouse参数

import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.0
import QtQuick.Window 2.0

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    // 处理鼠标事件示例
    MouseArea {
        anchors.fill: parent; // 在哪个区域之内接收鼠标事件
        acceptedButtons: Qt.LeftButton | Qt.RightButton; // 鼠标的左键和右键事件
        onClicked: {
            if (mouse.button == Qt.LeftButton) {
                txt.text = "您点击了左键。";
            } else if (mouse.button == Qt.RightButton) {
                txt.text = "您点击了右键。";
            }
        }

        onDoubleClicked: {
            if (mouse.button == Qt.LeftButton) {
                txt.text = "您双击了左键。";
            } else if (mouse.button == Qt.RightButton) {
                txt.text = "您双击了右键。";
            }
        }
    }
}

2、处理键盘事件

import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.0
import QtQuick.Window 2.0

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    // 处理键盘事件示例
    Text {
        id: txt;
        text: "齐天大圣";
        width: 60*8;
        font.pointSize: 50;
        x: 100;
        y: 200;
        //anchors.centerIn: parent; // 如果执行下面的代码改变文本的位置,那么不能使用锚布局
        // Window对象不能处理按键事件,需要放到一个Item对象里
        Keys.onLeftPressed: x -= 10;
        Keys.onRightPressed: x += 10;
        Keys.onUpPressed: y -= 10;
        Keys.onDownPressed: y += 10;
        focus: true; // 只有拥有焦点的Item才能处理按键事件
    }
}

Keys是一个附加属性
QML中的属性就是C++中的成员变量。

属性的类型:
(1)基本类型
(2)id属性:可以在其他对象或脚本中通过id引用本对象
(3)列表属性
(4)信号处理器
(5)分组属性:
Text {
    font { pixelSize: 12; bold: true; }
}
(6)附加属性

《Qt Quick 4小时入门》学习笔记4的更多相关文章

  1. 《Qt Quick 4小时入门》学习笔记3

    http://edu.csdn.net/course/detail/1042/14807?auto_start=1 Qt Quick 4小时入门 第八章:Qt Quick中的锚(anchors)布局 ...

  2. 《Qt Quick 4小时入门》学习笔记2

    http://edu.csdn.net/course/detail/1042/14805?auto_start=1   Qt Quick 4小时入门 第五章:Qt Quick基本界面元素介绍   1. ...

  3. 《Qt Quick 4小时入门》学习笔记

    http://edu.csdn.net/course/detail/1042/14804?auto_start=1   Qt Quick 4小时入门 第五章:Qt Quick里的信号与槽   QML中 ...

  4. PyQt4入门学习笔记(三)

    # PyQt4入门学习笔记(三) PyQt4内的布局 布局方式是我们控制我们的GUI页面内各个控件的排放位置的.我们可以通过两种基本方式来控制: 1.绝对位置 2.layout类 绝对位置 这种方式要 ...

  5. Hadoop入门学习笔记---part4

    紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操 ...

  6. Hadoop入门学习笔记---part3

    2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hado ...

  7. PyQt4入门学习笔记(一)

    PyQt4入门学习笔记(一) 一直没有找到什么好的pyqt4的教程,偶然在google上搜到一篇不错的入门文档,翻译过来,留以后再复习. 原始链接如下: http://zetcode.com/gui/ ...

  8. Hadoop入门学习笔记---part2

    在<Hadoop入门学习笔记---part1>中感觉自己虽然总结的比较详细,但是始终感觉有点凌乱.不够系统化,不够简洁.经过自己的推敲和总结,现在在此处概括性的总结一下,认为在准备搭建ha ...

  9. Hadoop入门学习笔记---part1

    随着毕业设计的进行,大学四年正式进入尾声.任你玩四年的大学的最后一次作业最后在激烈的选题中尘埃落定.无论选择了怎样的选题,无论最后的结果是怎样的,对于大学里面的这最后一份作业,也希望自己能够尽心尽力, ...

随机推荐

  1. 第一天ci框架开发商城2

    ci框架开发商城2 1/28/2016 9:45:52 PM mvc完整案例 mvc完成新闻的增删改查 news控制器news.php class News extends CI_controller ...

  2. js开发笔记

    jQuery jQuery判断页面元素是否存在:$("#someID").length > 0 AJAX 通过设置window.location.hash值和响应window ...

  3. Laravel使用笔记 —— migration

    在使用 php artisan make:migration 创建migration时,可用 --path 指定创建migration文件的路径, 如果在执行的 php artisan migrate ...

  4. C++常用特性原理解析

    在我的早期印象中,C++这门语言是软件工程发展过程中,出于对面向对象语言级支持不可或缺的情况下,一群曾经信誓旦旦想要用C统治宇宙的极客们妥协出来的一个高性能怪咖. 它驳杂万分,但引人入胜,出于多(mi ...

  5. sqlyog重复使用的方法(30天)

    Sqlyog作为一款可视化的数据库管理工具,各种方便我就不说了,但是未经汉化或者绿色过的软件存在30天的生命期,到期后我们就不可以使用了,要摸卸载重装,我们还可以去修改注册表,来延长它的生命期,具体步 ...

  6. switch..case使用

    1.多个if...else连在一起使用的时候,可以转为使用更方便的switch结构.switch (XXX) { case "aaa": // ... break; case &q ...

  7. 使用QQ邮箱发送email(Python)

    实际开发过程中使用到邮箱的概率很高,那么如何借助python使用qq邮箱发送邮件呢? 代码很简单,短短几行代码就可以实现这个功能. 使用到的模块有smtplib和email这个两个模块,关于这两个模块 ...

  8. css 浅析display属性

    继续开始我的css之旅吧.今天我们来说什么啊.构思了两天还是没有什么思路,但是学习的步伐我们不能停止下来.还是按照之前的计划来讲讲display,在讲这个之前我们还是按照老规矩来扯扯蛋,步子不能够迈大 ...

  9. Nonblocking I/O and select()

    This sample program illustrates a server application that uses nonblocking and the select() API. Soc ...

  10. Redis_redis分布式锁-SETNX

    因业务需要使用了redis的SETNX来实现分布式锁. 描述:Redis有一系列的命令,特点是以NX结尾,NX是Not eXists的缩写,如SETNX命令就应该理解为:SET if Not eXis ...