java中给 按钮 添加enter的快捷方式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中给 按钮 添加enter的快捷方式相关的知识,希望对你有一定的参考价值。

如题,请注意:1,是java中,我用的是my eclipse
2,是给按钮添加,按钮,看了挺多答案说按钮不能设置
alt以外的快捷方式,不知道是不是true
3,只是Enter,不是ctrl+enter 也不是alt+enter
求大侠们指教..

参考技术A private void btn_loginActionPerformed(java.awt.event.ActionEvent evt)
// new FirstFrame().setVisible(true);
if (evt.getKeyChar() == '\n')
login();




你只要在按钮的点击事件中加
if (evt.getKeyChar() == '\n')
login();//按enter键后调用登录的方法


就可以了。 我之前的项目中用过的。本回答被提问者采纳

PyQt双用途ENTER按键

我正在使用PyQt5和Python 3.6。我想使用ENTER(或RETURN)密钥用于双重目的。

如果用户在组合框中输入文本然后点击ENTER键,那么我希望组合框中的文本被附加到列表中。在所有其他情况下,我希望ENTER键作为按钮的快捷方式。

ENTER被按下时,我无法找到关于手柄如何的正确决定。这是一个代码示例。我正在寻找returnDecision(self)函数的决定(在脚本的底部)。

import sys
from PyQt5.QtWidgets import QWidget, QPushButton, QApplication, QShortcut
from PyQt5.QtWidgets import QComboBox
from PyQt5.QtGui import QKeySequence   
from PyQt5.QtCore import Qt, QSize

class Example(QWidget):

    def __init__(self):
        super().__init__()        
        self.initUI()        

    def initUI(self):
        self.setGeometry(300, 300, 300, 200)        
        btn = QPushButton('Button', self)
        btn.move(100, 50)               
        btn.clicked.connect(self.btnPrint)
        self.comboBox = QComboBox(self)
        self.comboBox.setEditable(True)
        self.comboBox.move(100, 150)
        self.comboBox.setMinimumSize(QSize(150, 0))
        self.comboBox.setEditText("Initial Text")
        self.comboBox.editTextChanged.connect(self.cboxPrint)
        enter = QShortcut(QKeySequence(Qt.Key_Return), self)
        enter.activated.connect(self.returnDecision)
        self.textList = []
        self.show()

    def btnPrint(self):
        print("Button was pressed")

    def btnAction(self):
        print("RETURN pressed when NOT editing combo box")
        self.btnPrint()

    def cboxPrint(self):
        print(self.comboBox.currentText())

    def cboxAction(self):
        print("RETURN pressed when editing combo box")
        self.textList.append(self.comboBox.currentText())
        print(self.textList)        

    def returnDecision(self):
        if ENTER KEY WAS PRESSED WHILE EDITING COMBO BOX:
            self.cboxAction()
        else:
            self.btnAction()

if __name__ == '__main__':    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

有什么建议?

答案

解决此问题的一种方法是使用QComboBox的自定义子类并覆盖keyPressEvent方法。然后还在窗口小部件中实现keyPressEvent并以不同方式处理每个事件。

class CustomCombo(QtWidgets.QComboBox):

    enter_pressed = QtCore.pyqtSignal()

    def __init__(self, parent=None):
        super().__init__(parent)

    def keyPressEvent(self, event):
        if event.key() == QtCore.Qt.Key_Return:
            self.enter_pressed.emit()
        else:
            QtWidgets.QComboBox.keyPressEvent(self, event)  
            # if the key is not return, handle normally


class Example(QWidget):

    def __init__(self):
        # Code here
        self.combo_box = CustomCombo(self)
        self.combo_box.enter_pressed.connect(self.cboxAction)

    def keyPressEvent(self, event):
        if event.key() == QtCore.Qt.Key_Return:
            self.btnAction()

以上是关于java中给 按钮 添加enter的快捷方式的主要内容,如果未能解决你的问题,请参考以下文章

Ctrl+Enter在Java中的快捷键怎么写

JavaGUI程序给按钮添加快捷键

vue中给buttion按钮添加键盘回车(enter)事件

Qt为按钮设置两个快捷键,例如回车键和小键盘的Enter键

给Button按钮创建快捷键

java 给按钮加监听的快捷键是啥???(快捷键加监听减少写代码的时间)