2013-03-07 8 views
5

Warum, wenn ich eingeben eingeben, tut die keyPressEvent Methode nicht tun, was ich brauche? Es bewegt den Cursor nur auf eine neue Zeile.Warum KeyPress Event in PyQt funktioniert nicht für Key Enter?

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) 

Antwort

7

Qt.Key_Enter das ist Enter auf der Tastatur zu finden:

Qt::Key_Return 0x01000004 
Qt::Key_Enter 0x01000005 Typically located on the keypad. 

Verwendung:

def keyPressEvent(self, qKeyEvent): 
    print(qKeyEvent.key()) 
    if qKeyEvent.key() == QtCore.Qt.Key_Return: 
     print('Enter pressed') 
    else: 
     super().keyPressEvent(qKeyEvent)