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 }

 

你可能感兴趣的:(按键事件)