2017-12-19 19 views
0

キーボードのEnterキーでQPushButton( "click")を押したときに、どのようにして(on_click)動作させることができますか?それだけでmouse_clickEnterキーで関数を呼び出す

import sys 
from PyQt5.QtWidgets import * 

class Example(QMainWindow): 

    def __init__(self): 
     super().__init__() 
     self.initUI() 

    def initUI(self): 

     self.label = QLabel("",self) 
     self.label.move(100, 100) 

     self.button = QPushButton('click', self) 
     self.button.move(100, 50) 
     self.button.clicked.connect(self.on_click) 

     self.setGeometry(500, 150, 200, 200) 
     self.show()  

    def on_click(self): 
     self.label.setText("Hello") 

if __name__ == '__main__': 
    app = QApplication(sys.argv) 
    ex = Example() 
    sys.exit(app.exec_()) 
+0

あなたは、キーボードのEnterキーを押したときにon_click関数が呼び出されるようにしたいですか? – eyllanesc

+0

はい、可能ですか? – gin

+0

あなたのタイトルは不適切です。なぜなら、これはボタンと対話する必要がないからです。 – eyllanesc

答えて

0

と相互作用あなたはkeyPressEventメソッドを上書きする必要があります。

import sys 
from PyQt5.QtWidgets import * 
from PyQt5.QtCore import * 

class Example(QMainWindow): 

    def __init__(self): 
     super().__init__() 
     self.initUI() 

    def initUI(self): 

     self.label = QLabel("",self) 
     self.label.move(100, 100) 

     self.button = QPushButton('click', self) 
     self.button.move(100, 50) 
     self.button.clicked.connect(self.on_click) 

     self.setGeometry(500, 150, 200, 200) 
     self.show()  

    def on_click(self): 
     self.label.setText("Hello") 

    def keyPressEvent(self, event): 
     if event.key() == Qt.Key_Return: 
      self.on_click() 


if __name__ == '__main__': 
    app = QApplication(sys.argv) 
    ex = Example() 
    sys.exit(app.exec_()) 
+0

華麗!そんなに先生ありがとう – gin

関連する問題