为啥 PyQt 中的 keyPress 事件对 Enter 键不起作用?
Posted
技术标签:
【中文标题】为啥 PyQt 中的 keyPress 事件对 Enter 键不起作用?【英文标题】:Why keyPress Event in PyQt does not work for key Enter?为什么 PyQt 中的 keyPress 事件对 Enter 键不起作用? 【发布时间】:2013-03-07 04:25:14 【问题描述】:为什么,当我按 Enter 时,keyPressEvent
方法不能满足我的需要?它只是将光标移动到新行。
class TextArea(QTextEdit):
def __init__(self, parent):
super().__init__(parent=parent)
self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
self.show()
def SLOT_SendMsg(self):
return lambda: self.get_and_send()
def get_and_send(self):
text = self.toPlainText()
self.clear()
get_connect(text)
def keyPressEvent(self, event):
if event.key() == QtCore.Qt.Key_Enter:
self.get_and_send()
else:
super().keyPressEvent(event)
【问题讨论】:
【参考方案1】:Qt.Key_Enter
是键盘上的 Enter:
Qt::Key_Return 0x01000004
Qt::Key_Enter 0x01000005 Typically located on the keypad.
用途:
def keyPressEvent(self, qKeyEvent):
print(qKeyEvent.key())
if qKeyEvent.key() == QtCore.Qt.Key_Return:
print('Enter pressed')
else:
super().keyPressEvent(qKeyEvent)
【讨论】:
以上是关于为啥 PyQt 中的 keyPress 事件对 Enter 键不起作用?的主要内容,如果未能解决你的问题,请参考以下文章
求C# KeyPress 事件中,所有e.KeyChar值的意思
keypress 和 keyup - 为啥 keyCode 不同?