日本語 English

簡単なクリッカブルボタンのチュートリアル

このチュートリアルではPySideの シグナルとスロット の扱い方を紹介します。このQtの機能は、基本的にはグラフィカルウィジェット同士やグラフィカルウィジェットと独自のPythonコードの間の通信を可能にします。ここで紹介するアプリケーションでは、押すたびにPythonコンソールへ Hello World と表示するクリッカブルボタンを作成していきます。

まず必要なQtのクラスとPythonのsysクラスのインポートからはじめましょう。

  1. import sys
  2. from PySide.QtCore import *
  3. from PySide.QtGui import *

次にコンソールに “Hello World“と出力するpythonの関数を作成しましょう。

  1. # 挨拶をします
  2. def sayHello():
  3.     print "Hello World!"

ここではじめてのPySideアプリケーションで述べたように、PySideコードを実行するQApplicationを作成します。

  1. # Qt Applicationを作ります
  2. app = QApplication(sys.argv)

クリッカブルボタン、QPushButtonを作成しましょう。QPushButtonのコンストラクタにPythonの文字列を渡して、ボタンにラベルを付けます。

  1. # ボタンを作ります
  2. button = QPushButton("Click me")

ボタンを表示する前に、先ほど定義した sayHello() 関数とボタンとを接続します。今のところ接続方法には新旧の2つのスタイルがありますが、ここではよりPython的である新スタイルを使っていきます。両方のスタイルの詳細はPySideのシグナルとスロットでご確認ください。QPushButtonは clicked と呼ばれる事前定義シグナルをもっており、ボタンが押されるたびにこのシグナルが送出されます。 ではこのシグナルと sayHello() 関数を接続しましょう。

  1. # ボタンと関数を接続します
  2. button.clicked.connect(sayHello)

最後にボタンを表示してQtのメインループを開始します。

  1. # ボタンを表示します
  2. button.show()
  3. # Qtのループを開始します
  4. app.exec_()

コード全体

  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3.  
  4. import sys
  5. from PySide.QtCore import *
  6. from PySide.QtGui import *
  7.  
  8. def sayHello():
  9.     print "Hello World!"
  10.  
  11. # Qt Applicationを作ります
  12. app = QApplication(sys.argv)
  13. # ボタンを作成して関数と接続したのち、表示します
  14. button = QPushButton("Click me")
  15. button.clicked.connect(sayHello)
  16. button.show()
  17. # Qtのループを開始します
  18. app.exec_()    

基本はわかりましたね。今度はあなたの名前を表示させることができるでしょうか?

Categories: