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



    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)附加属性




  • 相关阅读:
    手写Linq To Object
    4、IOC--内置Unity容器的使用
    WebApi 基于JWT实现Token签名认证
    软件架构师之路--观察者模式
    EF--封装三层架构IOC
    EF--主外键关系导航属性
    EF--EntityState相互转换
    证明task线程是来源于线程池的,线程重用
    3、IOC--手写Unity容器--链式依赖--第N层依赖注入
    2、IOC--手写Unity容器--第一层依赖注入
  • 原文地址:https://www.cnblogs.com/sdsunjing/p/5903636.html
Copyright © 2020-2023  润新知