2013-03-07 10 views
5

Perché, quando si preme Immettere, il metodo keyPressEvent non fa ciò che mi serve? Sposta semplicemente il cursore su una nuova riga.Perché keyPress Event in PyQt non funziona con la chiave 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) 

risposta

7

Qt.Key_Enter si ENTER trova sulla tastiera:

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

Usa:

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