Tkinter(Python): ウィンドウを表示する

PythonにはGUI画面作成用のライブラリとして Tkinterが標準で用意されています。 Tkinterは標準パッケージとしてあらかじめ インストールされているため、 インポートするだけで使えます。

ここではTkinterを使ってウィンドウを表示させる 最低限のロジックを紹介します。

ウィンドウを表示するコード

Tkinterを使って、 ウィンドウを表示するのに必要な 最低限のロジックは次の通りです。

import tkinter as tk

# Tkオブジェクトを作成
root = tk.Tk()

# タイトル
root.title("テスト")

# ウィンドウサイズと位置 幅 x 高さ + X座標 + Y座標
root.geometry("300x200+100+200")

# メインループ
root.mainloop()

上のプログラムを実行すると、サイズが(300, 200)、位置が(100, 200)の 次のようなウィンドウが表示されます。

Tkinter メインウィンドウ

プログラムの解説

プログラムの説明をしていきます。

import

Tkinterは標準パッケージなのでimportするだけで使えます。 一般的には「as tk」を加えて、以後は「tk」と書くだけで使えるようにします。

import tkinter as tk

Tkオブジェクト作成

Tk()コンストラクタでTkオブジェクト(Tkクラスのインスタンス) を作成します。

# Tkオブジェクトを作成
root = tk.Tk()

画面タイトル

Tkオブジェクトのtitle()メソッドでウィンドウのタイトルを設定します。

# タイトル
root.title("テスト")

ウィンドウサイズ

geometry()メソッドでウィンドウのサイズと位置を指定します。 引数で指定しているのは「幅 x 高さ + X座標 + Y座標」です。 「x」と「+」の違いに注意してください。

# ウィンドウサイズと位置 幅 x 高さ + X座標 + Y座標
root.geometry("300x200+100+200")

ウィンドウのサイズのみを指定する場合は次の記述でOKです。

root.geometry("300x200")

画面表示

mainloop()メソッドでメインループを実行すると画面が表示されます。

# メインループ
root.mainloop()

メインウィンドウに部品を配置していく

Tkinterでは、まずメインウィンドウを作成して、 メインウィンドウの子要素としてボタンやラベルなどを配置していきます。

ボタンなどの部品をTkinterでは「ウィジェット」と呼びます。

下図のようにウィンドウに直接ボタンなどを配置する方法や、

ウィンドウの下にボタン

下図のようにウィンドウの子要素としてフレームウィジェットを配置し、 フレームの子要素としてボタンやラベルを配置する方法もあります。 複雑なレイアウトの場合は、 このようにフレームを介した方が配置しやすくなります。

ウィンドウの下にフレーム

ウィジェットを配置する方法は3通りあって、 place()・pack()・grid()のいずれかのメソッドを使って配置します。 具体的なコードの書き方は次の記事を参考にしてください。
(関連記事: Tkinter: ウィジェットの配置方法 3通り

Python