2013-03-07 46 views
5

を入力すると、と入力してください。keyPressEventメソッドが必要な処理を行っていませんか?カーソルを新しい行に移動するだけです。なぜPyQtのkeyPressイベントがキー入力に対して機能しないのですか?

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) 

答えて

7

Qt.Key_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) 
関連する問題