QML:搜索框或输入框TextEdit/TextInput/TextField等组件添加回车事件响应

文章介绍了如何在新的QML工程中为常见的文本输入控件(TextEdit、TextInput、TextField)添加回车事件,以提升用户体验。提供了三种实现方式:一是利用editFinished信号;二是通过监听Keys.onReturnPressed和Keys.onEnterPressed事件;三是捕获所有键盘事件并判断键值。这些方法使得用户在按下回车键时能直接触发搜索功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

新的qml工程,发现所有的搜索输入框都没有添加回车事件,本着用户体验第一的原则,

随手进行了添加,响应回车事件直接进行搜索


一般qml常用文本输入控件有这几种:TextEdit、TextInput、TextField

实现方式一:

经过验证,都可以通过editFinished信号来触发,如TextField

    TextField {
            id: textField1
            anchors.fill: parent

            placeholderText: qsTr("请输入姓名、ID检索")


            //enter/return to search
            onEditingFinished: {

                searchClicked(textField1.text);
            }
        }

实现方式二:

通过事件来处理,如同qwidget的键盘事件处理方式:

回车按键特殊,需要两个按键都做处理。

        TextField {
            id: textField1
            anchors.fill: parent

            placeholderText: qsTr("请输入姓名、ID检索")

            //fixed-enter/return to search
            //右下角的回车按键
            Keys.onReturnPressed: {
                strSeachInfo = textField1.text;
                searchClicked(textField1.text);
            }
            //中间的回车按键
            Keys.onEnterPressed: {
                strSeachInfo = textField1.text;
                searchClicked(textField1.text);
            }
        }

其他的按键响应一样的处理方式,参考放在最后:

实现方式三:

也可以接收所有键盘事件后,手动判断和处理感兴趣的按键事件:

    TextField {    
        id: textField1
        anchors.fill: parent

        placeholderText: qsTr("请输入姓名、ID检索")

        Keys.onPressed: {
            if (event.key === Qt.Key_Enter || event.key === Qt.Key_Return)
                searchClicked(textField1.text);
        }
    }

其他的按键信号:

asteriskPressed(event)
backPressed(event)
backtabPressed(event)
callPressed(event)
cancelPressed(event)
context1Pressed(event)
context2Pressed(event)
context3Pressed(event)
context4Pressed(event)
deletePressed(event)
digit0Pressed(event)
digit1Pressed(event)
digit2Pressed(event)
digit3Pressed(event)
digit4Pressed(event)
digit5Pressed(event)
digit6Pressed(event)
digit7Pressed(event)
digit8Pressed(event)
digit9Pressed(event)
downPressed(event)
enterPressed(event)
escapePressed(event)
flipPressed(event)
hangupPressed(event)
leftPressed(event)
menuPressed(event)
noPressed(event)
pressed(event)
released(event)
returnPressed(event)
rightPressed(event)
selectPressed(event)
shortcutOverride(event)
spacePressed(event)
tabPressed(event)
upPressed(event)
volumeDownPressed(event)
volumeUpPressed(event)
yesPressed(event) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值