首页 > 代码库 > QT QML Keys 处理注意事项
QT QML Keys 处理注意事项
今天在学习 QT QML 最基本的东东,在下面的代码中响应按键处理无效。代码如下:
1 import QtQuick 2.2 2 import QtQuick.Window 2.1 3 import QtQuick.Controls 1.2 4 5 Window { 6 visible: true 7 width: 360 8 height: 360 9 10 MouseArea {11 anchors.fill: parent12 onClicked: {13 Qt.quit();14 }15 }16 17 Text {18 id: helloWorldTxt;19 text: qsTr("Hello World")20 anchors.centerIn: parent21 }22 23 Button {24 id: quitBtn;25 text: "Quit";26 anchors.horizontalCenter: helloWorldTxt.horizontalCenter;27 anchors.top: helloWorldTxt.bottom;28 anchors.bottomMargin: 8;29 onClicked: {30 console.log("click quit button.");31 Qt.quit(); // 如果没有此行,则点击此按键不会退出.32 }33 }34 35 // focus: true; // 错误: Invalid property name36 Keys.enabled: true;37 Keys.onEscapePressed: {38 Qt.quit(); // 没有功能: 不退出, why?39 }40 Keys.onPressed: {41 switch(event.key) {42 case Qt.Key_0:43 console.log("click key 0."); // 一样没有 LOG 输出44 break;45 default:46 console.log("click key other.");47 break;48 }49 }50 }
将 Keys 的处理放在 Item 中、并且增加: focus: true; 后,功能正常。
代码如下(省略部分重复的代码):
1 import QtQuick 2.2 2 import QtQuick.Window 2.1 3 import QtQuick.Controls 1.2 4 5 Window { 6 ...... 7 8 Item { 9 focus: true; // 此句是必须的, 否则没有功能10 Keys.enabled: true;11 Keys.onEscapePressed: {12 Qt.quit(); // 功能正常13 }14 Keys.onPressed: {15 switch(event.key) {16 case Qt.Key_0:17 console.log("click key 0."); // 有 LOG 输出18 break;19 default:20 console.log("click key other.");21 break;22 }23 }24 }25 }
QT QML Keys 处理注意事项
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。