QML —— 键盘输入示例(附完整源码)

示例效果

QML —— 键盘输入示例(附完整源码)_第1张图片

Keys

     所有视觉基本体都支持通过“附加关键帧”属性进行关键帧处理。按键可以通过onPressed和onReleased信号属性进行处理。

     信号属性有一个KeyEvent参数,名为event,其中包含事件的详细信息。如果键被处理,则event.accepted应设置为true,以防止事件向上传播到项层次结构。

源码
import QtQuick 2.12
import QtQuick.Window 2.12

import QtQuick.Layouts 1.12

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

    Text
    {
        id: textID
        text: qsTr("text")
        anchors.centerIn: parent
        font.pixelSize: 40
        font.family: "Courier New"
    }

    Item
    {
        width: parent.width
        height: parent.height
        anchors.fill: parent
        focus: true					// 重要! 设置焦点
        Keys.enabled: true
        Keys.onEscapePressed: Qt.quit()
        Keys.onPressed:
        {
            switch(event.key)
            {
            case Qt.Key_0:
            case Qt.Key_1:
            case Qt.Key_2:
            case Qt.Key_3:
            case Qt.Key_4:
            case Qt.Key_5:
            case Qt.Key_6:
            case Qt.Key_7:
            case Qt.Key_8:
            case Qt.Key_9:
                event.accepted=true;
                textID.text = event.key-Qt.Key_0;break;
            }
        }
    }
}

关注

笔者 - jxd

你可能感兴趣的:(QML,Qt,QML)