【问题标题】: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)

【问题讨论】:

    标签: events python-3.x pyqt4 keypress


    【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 2016-02-22
      • 1970-01-01
      • 1970-01-01
      • 2012-09-25
      • 1970-01-01
      • 2016-11-08
      • 2013-02-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多