java中给 按钮 添加enter的快捷方式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中给 按钮 添加enter的快捷方式相关的知识,希望对你有一定的参考价值。
如题,请注意:1,是java中,我用的是my eclipse
2,是给按钮添加,按钮,看了挺多答案说按钮不能设置
alt以外的快捷方式,不知道是不是true
3,只是Enter,不是ctrl+enter 也不是alt+enter
求大侠们指教..
// 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的快捷方式的主要内容,如果未能解决你的问题,请参考以下文章