PyQt ボタンクリックによるイベント動作
Sponsored Links
皆さんこんにちは
お元気ですか?私は普通に生きています。
さて、今日はPyQtにてボタンクリックによる動作を実行したいと思います。
まずはサンプルコードを御覧ください。
#coding:utf-8 import PyQt4.QtCore as QtCore import PyQt4.QtGui as QtGui import sys class MainMenu(QtGui.QWidget): def __init__(self,parent=None): QtGui.QWidget.__init__(self, parent=parent) self.setGeometry(10,10,40,300) button = QtGui.QPushButton('Close',self) self.Label = QtGui.QLabel('print',self) self.Label.setGeometry(20,20,40,40) self.connect(button,QtCore.SIGNAL('clicked()'),self.changeText) def changeText(self): self.Label.setText("abcd") if __name__ == '__main__': application = QtGui.QApplication(sys.argv) main = MainMenu() main_window =QtGui.QMainWindow() main_window.setCentralWidget(main) main_window.show() application.exec_()
ボタンをクリックするとabcdと表示されます。
ではソースコードの解説へ
Widget
button = QtGui.QPushButton('Close',self) self.Label = QtGui.QLabel('print',self)
Widgetを生成しています。第一引数に表示文字、第二引数は親(スーパークラス)を入れています。
Position
self.Label.setGeometry(20,20,40,40)
左上から20(横)、20(縦)の位置に配置し、40、40のスペースを取る感じです。
Connect
今の状態だとボタンが有るだけでクリックしても動作しません
そこで、ボタンと起動するメソッドを結びつけることが必要です。
self.connect(button,QtCore.SIGNAL('clicked()'),self.changeText)
第一引数から結びつける対象、イベント(今回はクリック)、実行するメソッドです
これらを組み合わせるだけで、実際にクリックした時に実行するGUIを作ることができます。