Python/GUIアプリの作成
GUIプログラミング入門
[編集]tkinterは、Pythonに標準で付属しているライブラリで、Tcl/TkというGUI開発の定番ツールをベースにしています。ボタンやテキストボックスなど、様々なGUI部品を簡単に作成できるため、初心者でも使いやすいのが特徴です。Windows、macOS、UNIXやLinuxなど、主要なOSに対応しています。
インストール方法
[編集]tkinterはPythonの標準ライブラリです。しかし一部のLinuxディストリビューションでは、Pythonとは別のパッケージとして追加でインストールする必要があります。
- Windows: 公式のPythonインストーラーを使用すると、
tkinterは標準でインストールされますので、追加の作業は不要です。 - Linux (例: Fedoraの場合):
tkinterをインストールするには、以下のコマンドを実行します。
sudo dnf install python3-tkinter
基本的なGUIウィンドウの表示
[編集]まずは、簡単なGUIウィンドウを表示するコードを見てみましょう。
import tkinter # GUIウィンドウを作成 root = tkinter.Tk() # メインループを開始 root.mainloop()
このコードを実行すると、空のウィンドウが表示されます。
ウィンドウの設定
[編集]次に、ウィンドウのタイトルやサイズを設定する方法を見てみましょう。
import tkinter # GUIウィンドウを作成 root = tkinter.Tk() # ウィンドウのタイトルを設定 root.title('Hello Window') # ウィンドウのサイズを設定 (幅x高さ) root.geometry('300x400') # メインループを開始 root.mainloop()
このコードでは、ウィンドウのタイトルを「Hello Window」に設定し、サイズを300x400ピクセルに指定しています。
キャンバスを使った図形の描画
[編集]tkinterには、図形を描画するための「キャンバス」というウィジェットがあります。以下のコードは、キャンバスを作成し、背景色を設定する例です。
import tkinter # GUIウィンドウを作成 root = tkinter.Tk() # ウィンドウのサイズを設定 root.geometry('300x400') # キャンバスの作成と設置 canvas = tkinter.Canvas(root, width=100, height=150, bg="blue") canvas.place(x=0, y=0) # メインループを開始 root.mainloop()
ここでは、Canvasウィジェットを作成し、その背景色を青 (bg="blue") に設定しています。キャンバスはplaceメソッドでウィンドウに配置されます。
画像の表示
[編集]画像をキャンバスに表示する方法を見てみましょう。tkinterではPNG形式の画像ファイルを扱うことができます。
import tkinter # GUIウィンドウを作成 root = tkinter.Tk() # ウィンドウのサイズを設定 root.geometry('800x900') # キャンバスの作成と設置 canvas = tkinter.Canvas(root, width=600, height=750, bg="blue") canvas.place(x=0, y=0) # 画像の読み込みと表示 img = tkinter.PhotoImage(file="pygra.png") canvas.create_image(0, 0, image=img) # メインループを開始 root.mainloop()
ここでは、PhotoImageを使用して画像ファイルを読み込み、キャンバスに表示しています。pygra.pngは実行ファイルと同じディレクトリに置く必要があります。
なお、tkinter.PhotoImageはPNG形式に対応していますが、JPEG形式には対応していない点に注意が必要です。
座標指定でテキストを表示
[編集]Labelウィジェットを使って、座標指定でテキストを表示することができます。以下のコードは、指定した座標に「test string」を表示する例です。
import tkinter # GUIウィンドウを作成 root = tkinter.Tk() # ラベルの作成と配置 label = tkinter.Label(root, text="test string") label.place(x=50, y=30) # メインループを開始 root.mainloop()
ここでは、placeメソッドでテキストを画面上の任意の座標(x=50, y=30)に配置しています。
参考文献
[編集]- 『12歳からはじめるゼロからのPythonゲームプログラミング教室』(株式会社ラトルズ、2017年)
- 『入門 Python3』(オライリージャパン、Bill Luvanovic著、2017年)
- 『やさしい Python 入門』(カットシステム社、日向俊二著、2012年)
LinuxでのGUIプログラム
[編集]Linux環境でも、tkinterを使ってGUIアプリケーションを作成することができます。FedoraなどのLinuxディストリビューションでは、tkinterをインストールするために以下のコマンドを実行します。
sudo dnf install python3-tkinter
その後、以下のようにPythonプログラムを作成し、GUIウィンドウを表示できます。
import tkinter # GUIウィンドウを作成 root = tkinter.Tk() root.title("タイトル") # メインループを開始 root.mainloop()
これにより、Windowsと同様にLinuxでもtkinterを使ったGUIアプリケーションを作成できます。