events - 为什么PyQt中的keyPress事件不适用于Enter键?

标签 events python-3.x pyqt4 keypress

为什么当我按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)

最佳答案

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)

关于events - 为什么PyQt中的keyPress事件不适用于Enter键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15263063/

相关文章:

c++ - 为什么 WindowStateChange 事件对我不起作用

python - 为什么我不能连续两次在 sys.stdin 中执行循环? (Python)

java - 在屏幕上移动对象

JavaScript/JQuery 如何设置再次调用方法之前的时间?

python-3.x - 在Windows中使用pip命令安装dlib时出错

python - 在 For 循环中格式化 Django ValidationError

python - 使用 raw_input 会导致 PyQt 页面加载出现问题

Python:QtGui.QProgressBar 颜色

python - PyQt如何从布局中移除布局

javascript - 如何在单击时将新的输入行添加到表中?