nano_exit

基礎的なことこそ、簡単な例が必要だと思うのです。

PyQt: ボタンの解決の順番

下記サイト様を参考に練習中
PyQtではじめるGUIプログラミング

PyQt5 & python2.7 では、QApplication等の主要なmoduleはQtGuiではなく、QtWidgetsに入っている。
ややこしいことに、QWidgetというmoduleも同時に存在している。

#!/usr/bin/env python

import PyQt5.QtCore as QC
import PyQt5.QtGui as QG
import PyGt5.QtWidegets as QWs

def main():
  #app = QG.QApplication( sys.argv )
  #main_window = QG.QMainWindow()
  #hello_button = QG.QPushButton( "Hello World" )
  app = QWs.QApplication( sys.argv )
  main_window = QWs.QMainWindow()
  hello_button = QWs.QPushButton( "Hello World" )
  app.exec_()

if __name__ == "__main__":
  main()

次を足す。

# above the function main()
def on_click():
  print( "Hello World" )

def on_press():
  print( "Have a nice day" )

def on_release():
  print( "Good Night" )

# just bellow "hello_button"
hello_button.clicked.connect( on_click )
hello_button.pressed.connect( on_press )
hello_button.released.connect( on_release )

実行してボタンを押してみると、

press > release > click

の順で解決されることが分かる。

つまり、

press: ボタンを押した瞬間
release: ボタンを離した瞬間
click: press&releaseが解決された後

という感じ