QML按键事件处理

QML提供了对应的按键处理方法,我们接下来实现一个通过键盘上的方向键来移动文本,代码如下:

 1 import QtQuick 2.4
 2 import QtQuick.Controls 1.3
 3 import QtQuick.Window 2.2
 4 import QtQuick.Dialogs 1.2
 5 
 6 Rectangle{
 7     id: root
 8     width:  512
 9     height: 512
10     color: "gray"
11 
12     focus: true
13     Keys.enabled: true
14     Keys.onEscapePressed: Qt.quit();
15     Keys.forwardTo: [moveText, likeQt];
16 
17     Text {
18         id: moveText
19         x: 20; y: 20;
20         width: 200; height: 30;
21 
22         text: "Moving Text"
23         color: "blue"
24         font {bold: true; pixelSize: 30}
25 
26         Keys.enabled: true
27         Keys.onPressed: {
28             switch (event.key){
29             case Qt.Key_Left:
30                 x -= 10;
31                 break;
32             case Qt.Key_Right:
33                 x += 10;
34                 break;
35             case Qt.Key_Up:
36                 y -= 10;
37                 break;
38             case Qt.Key_Down:
39                 y += 10;
40                 break;
41             default:
42                 return;
43             }
44             event.accepted = true;
45         }
46     }
47 
48     CheckBox {
49         id: likeQt
50         text: "Like Qt Quick"
51         z:1
52 
53         anchors.left: parent.left
54         anchors.leftMargin: 10
55         anchors.bottom: parent.bottom
56         anchors.bottomMargin: 10
57     }
58 }

 

posted @ 2015-06-02 14:36  XiaoManon  阅读(5279)  评论(0编辑  收藏  举报