2013-03-07 25 views
5

Tại sao, khi tôi nhấn Nhập, phương thức keyPressEvent không làm những gì tôi cần? Nó chỉ di chuyển con trỏ đến một dòng mới.Tại sao sự kiện keyPress trong PyQt không hoạt động đối với phím 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) 

Trả lời

7

Qt.Key_Enter là Nhập nằm trên bàn phím:

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

Sử dụng:

def keyPressEvent(self, qKeyEvent): 
    print(qKeyEvent.key()) 
    if qKeyEvent.key() == QtCore.Qt.Key_Return: 
     print('Enter pressed') 
    else: 
     super().keyPressEvent(qKeyEvent) 
Các vấn đề liên quan