2013-03-07 63 views
5

爲什麼當我按輸入keyPressEvent方法不是我所需要的嗎?它只是將光標移動到一個新行。爲什麼在PyQt中keyPress事件不能用於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) 

回答

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) 
相關問題