コンテンツにスキップ

Python/GUIアプリの作成

出典: フリー教科書『ウィキブックス(Wikibooks)』


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アプリケーションを作成できます。

関連項目

[編集]