以下のコードを実行するとKeyを離していなくてもKeyReleaseEventが発生し、PressとReleaseを延々とループしてしまいます。
これを解決するにはどのような方法が考えられますか?
Zキーを押す→KeyPressEventが一度だけ発生→Zキーを離す→KeyReleaseEventが発生ような仕組みが作りたいです。
Python
1import sys 2from PySide2.QtWidgets import * 3from PySide2.QtCore import * 4 5class Test(QDialog): 6 def __init__(self, parent=None): 7 super(Test, self).__init__(parent) 8 layout = QVBoxLayout(self) 9 self.slider = QSlider(Qt.Horizontal) 10 self.slider.setRange(0, 100) 11 layout.addWidget(self.slider) 12 13 def press(self): 14 strValue = str(self.slider.value()) 15 print(strValue) 16 17 def release(self): 18 print('stop') 19 20 def keyPressEvent(self, event, ): 21 if event.key() == Qt.Key_Z:self.press() 22 23 def keyReleaseEvent(self, event): 24 if event.key() == Qt.Key_Z:self.release() 25 26if __name__ == '__main__': 27 app = QApplication(sys.argv) 28 T = Test() 29 T.show() 30 sys.exit(app.exec_())
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/29 08:18