查看完整版本: [-- qml手动发送键盘事件 --]

QTCN开发网 -> Qt QML开发 -> qml手动发送键盘事件 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

keris_huang 2019-12-02 09:42

qml手动发送键盘事件

qml中,如何做到可以像qwidget中的sendEvent那样,手动的发送键盘事件给某个控件,有没有大佬遇到过,或者解决过此种问题,请指教!

yhgaven 2019-12-02 11:37
比如键盘输入密码,工号等#号结束
Rectangle {
    id: mainPage
    width: 1280
    height: 768

    property string jobNumber;
    property int listCount: 0

    Component.onCompleted: {

    }

    focus: true
    Keys.onPressed: {
       event.accepted = true;//设置成了事件已接收,防止向上层传递

       var isNumber = event.key >= 0x30 && event.key<= 0x39;
       if (isNumber)
       {
           var num = event.key - 48;
           jobNumber += num;
       }

       if(event.key === Qt.Key_NumberSign)
       {
           console.log("jobNumber=111=="+jobNumber)
           //QmlCache.setJobNumber(jobNumber);
           jobNumber = "";
       }
    }
}

keris_huang 2019-12-02 13:27
yhgaven:比如键盘输入密码,工号等#号结束
Rectangle {
    id: mainPage
    width: 1280
    height: 768
....... (2019-12-02 11:37) 

大佬,你这个逻辑是监听用户的输入键盘事件,可能我描述的不够清楚!我其实是想在qml中,能实现像QWidget中的sendEvent函数的功能,比如:
qwidget是这样 QKeyEvent myEvent(QEvent::KeyPress,Qt::Key_Up(键盘事件,不用用户手动按,自动就产生的一个键盘事件),Qt::NoModifier);  
qApp->sendEvent(ui->MyWidget,&myEvent);

我的诉求:在qml文件中,定义一个键盘事件,然后,在代码中,手动发送这个事件给某个控件


  

linker 2019-12-02 13:33
用win api,给你个链接你参考吧
https://blog.csdn.net/everlasting_20141622/article/details/52233642


查看完整版本: [-- qml手动发送键盘事件 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled