Python

【Python/GUI】簡単にGUIを作成できるTkinterとは?使用できるメソッド一覧も紹介!

本記事では、Pythonで簡単にGUIアプリケーションが作成できるTkinterというライブラリを初心者にも分かりやすく紹介していきます!

Tkinterとは

Tkinter(ティーキンター)は、Pythonに標準で付属しているGUIライブラリです。

GUIの作成に必要な基本的な機能は使用することができるため、幅広い分野で用いられています。

Tkinterのメリット・デメリット

Tkinterは大きく下記のようなことがメリットとして挙げられます。

  • 標準ライブラリとして付属しているためインストール不要
  • 使用している人が多いためネットに情報が多い
  • シンプルな記述でGUIを作成できる
すらいむ管理人

使用している人が少ないライブラリは、細かな機能の実装やエラーの対処法が分からなかったりしますよね。。。

逆にTkinterのデメリットは下記のことが挙げられます。

  • その他のGUIライブラリと比較して複雑な機能を実装する機能が少ないため凝ったGUIを作成する際には不向き

スポンサーリンク

スポンサーリンク

Tkinterで作成できるウィジェット

Tkinterを用いるとボタンやテキストラベルといった様々なウィジェットを作成することができます。

すらいむ管理人

今回はTkinterで使用可能なメソッドをいくつか紹介していきます!

tkinterで使用できるメソッド一覧

紹介するメソッド一覧は以下の通りです。

labelテキストラベルの作成
buttonボタンの作成
checkbuttonチェックボタンの作成
radiobuttonラジオボタンの作成
entryエントリーボックスの作成
listboxリストボックスの作成
optionmenu選択肢を表示できるボタンの作成
spinboxスピンボックスの作成
separator区切り線を作成
notebookタブ付きウィジェットの作成
canvas図形配置のためのウィジェットを作成
menuメニューバーの作成
scaleスケールウィジェットの作成

■テキストラベルを作成する

テキストラベル」をGUI上に表示させた結果は以下のようになります。
テキストの文字や色は自由に変更することができます。

tk.Label(root, text="(自由テキスト)")

result of textlabel

■ボタンを作成する

「ボタン」ウィジェットをGUI上に表示させた結果は以下のようになります。

ボタンウィジェットはクリックすることで「クリックイベント」を発生させることができます。

tk.Button(root, text="(自由テキスト)")

result of button

ボタンウィジェットの詳しい使い方はコチラ:
「ボタンウィジェット」の使い方

■チェックボタンを作成する

「チェックボタン」ウィジェットをGUI上に配置した結果はこのようになります。

チェックボックスとは

該当する項目の「ON/OFF」を任意の数だけ指定することができるウィジェットのこと

result of checkbutton

詳しい使い方が知りたい場合はコチラ:
「チェックボタン」の使い方

■ラジオボタンを作成する

「ラジオボタン」ウィジェットをGUI上に配置した結果はこのようになります。

ラジオボタンとは

表示されている項目のうち一つだけを「ON」にすることができるウィジェットのこと

result of radiobutton

詳しい使い方が知りたい場合はコチラ:
「ラジオボタン」の使い方

■エントリーボックスを作成する

エントリーボックス」をGUI上に配置した結果はこのようになります。

エントリーボックスは、テキスト入力ができるウィジェットです。
入力した値を用いて様々な処理を行うことができます。

tk.Entry(root)

result of entry

■リストボックスを作成

リストボックス」をGUI上に配置した結果はこのようになります。

リストボックスは、選択肢を一覧として表示させられるウィジェットです。ここで表示させた選択肢から一つを選択して値を返すことができます。

また、オプションを追加すると複数選択ができるようにもなります。

result of listbox

スポンサーリンク

■オプションメニューボタンを作成する

オプションメニューボタン」はボタンクリック時に選択肢を下記のように表示させられるウィジェットです。

ボタンの横に「-」マークがあるのが特徴的です。
実際に表示させると下記のようになります。

tk.OptionMenu(master, variable, *values, **kwargs)

result of optionmenu1

GUI上に作成されたボタンをクリックすると選択肢の一覧が表示されます。

result of optionmenu2

OptionMenuの詳しい使い方はコチラ:
「オプションメニュー」の使い方

■スピンボックスを作成する

スピンボックス」は数値や任意の選択肢を右側の▲▼ボタンで変更できるウィジェットです。

数値は下記のように、整数単位でも変更できますしオプションを指定することで小数単位でも変更させることができます。

result of spinbox

また、数値だけでなく任意の選択肢を選ばせることもできます。

result of spinbox

Spinboxの詳しい使い方はコチラ:
「スピンボックス」の使い方

■区切り線を作成する

区切り線はGUIの画面上に直線を引くことができるウィジェットです。

tkinterの「Separatorメソッド」を使用します。直線の長さや色も自由に指定することができます。

ttk.Separator ( parent , option )

result of separator

Separatorの詳しい使い方はコチラ:
「区切り線」の使い方

■タブ付きウィンドウを作成する

タブ付きウィジェットをGUI上に表示させた結果はこのようになります。表示されたタブ付きウィジェット上の「タブ」をクリックすることで表示される画面を切り替えることができます。

実際に使用する場合は、Tkinterの「notebookメソッド」を用います。
タブの個数や大きさなども自由に変更することができます!

result of notebook

タブ付きウィジェットの詳しい使い方はコチラ:
「notebookメソッド」の使い方

■図形を作成・配置するためのウィジェットを作成

Tkinterで作成したGUI上に図形を配置したり画像を挿入したりする場合には、「Canvas」というウィジェットを配置させる必要があります。

実際に配置してみると下記のようになりました。
(分かりやすいように色を水色にしています)

result of canvas1

Canvasを使用して長方形を作成してみると下記のようになります。
他にも、円や三角形、多角形など様々な図形をCanvas上に作成することができます。

camvas-image2

Canvasの詳しい使い方はコチラ:
図形を作成・配置する「Canvas」の使い方

メニューバー」は作成したGUIの上部に ”ファイル” や ”編集” といったような項目を設定できます。
使用する場合には、tk.Menu()メソッドを使用します。

editmenu=tk.Menu(menubar)
menubar.add_cascade(label="編集",menu=editmenu)

実際にGUI上に配置してみるとこのようになります。

result of menu

配置したメニューバーには、上図のように「新規作成」「上書き保存」「名前を変更して保存」などの要素を追加させることもできます。

メニューバーの詳しい使い方はコチラ:
「Menubar」の使い方

■スケールウィジェットの作成

スケールウィジェット」は、スライドバーを動かすことで任意の値を取得できるようにするウィジェットです。

実際に使用する場合には、tk.Scale()メソッドを使用します。

scale1

スケールウィジェットは、色や外観などを変更できるオプションがあります。

スケールウィジェットを作成する方法はコチラ:
「tk.Scale」の使い方

スポンサーリンク

スポンサーリンク

その他Tkinterで使える様々なオプション機能

機能を追加できるオプション一覧

上記で紹介した様々なウィジェットの他にも、GUIに実装できる機能がたくさんあるので紹介していきます!

progressbarプログレスバーを表示させる
toplevel新規ウィンドウを表示させる
setfocus指定したウィジェットにフォーカスをあてる
filedialogファイルダイアログを開く
setPalette, bisqueウィンドウの色を変更する

■プログレスバーを表示させる

プログレスバー」は、何かの処理が実行中であることを示すウィジェットです。このプログレスバーには「確定的プログレスバー」と「非確定的プログレスバー」の二種類があります。

確定的プログレスバー」は、下図の上側に示したプログレスバーのことで処理の進捗を割合で可視化してくれます。

非確定的プログレスバー」は、下図の下側に示したプログレスバーのことで処理の進捗具合に関わらずバーが移動し続けます。

すらいむ管理人

GUIを作成する際に、プログレスバーの機能を追加するとユーザーにとっては使いやすいものになりますね。

プログレスバーの詳しい使い方はコチラ:
「プログレスバー」の使い方

■新規ウィンドウを作成する

Tkinterでは、作成したGUIからさらに新規でウィンドウを表示させるtk.Toplevel()メソッドがあります。

tk.Toplevel()をボタンのクリックイベント等に紐づけることで新規ウィンドウを表示させることができます。

tk.Toplevel()

result of toplevel

新規ウィンドウを表示させることができれば、任意の処理をさせたりグラフや画像を表示したりなどGUIの幅を広げることができます。

tk.Toplevel()の詳しい使い方はコチラ:
「tk.Toplevel」の使い方

■ウィジェットにフォーカスを当てる

TkinterでもGUI上に配置したウィジェットに対してフォーカスを当てることができます。ここでいうフォーカスは、任意のウィジェットが選択された状態のことを指します。

フォーカスをセットするためには、Tkinterのfocus_set()メソッドを使用します。

ウィジェット名.focus_set()

このfocus_set()メソッドを用いると矢印キーを使ってウィジェットのフォーカスを変更させることもできます。

ウィジェットのフォーカスを変更させる方法はコチラ:
「focus_set()メソッド」の使い方

■ファイルダイアログを表示させる

ファイルダイアログ」はファイル・データを操作するために一時的に開かれるウィンドウのことです。

GUI上でファイルを開いたり保存したりする際には必須の機能です。

下記のようにダイアログを表示させることができます。

dialog-image1

dialog-image2

ファイルダイアログの詳しい使い方はコチラ:
「Filedialog」の使い方

■ウィンドウの色を変更させる

Tkinterで作成するGUIは、ウィンドウや配置するウィジェットの色を変更することができます。

ウィジェット自体の色を変更したい場合には、対象とするウィジェットのオプションで背景や文字色等の色(background, foreground)を指定します。

一方で、ウィンドウ自体の背景色を変更したい場合には専用のメソッドを使用します。色の変更方法としては下記の3パターンがあります。

  1. configメソッド
  2. tk_setPaletteメソッド
  3. tk_bisqueメソッド

それぞれ異なった特徴があります。
それぞれの一例を下記に示してみます。

result of bg1
configメソッドで背景をオレンジに変更した結果
result of bg2
tk_setPaletteメソッドで背景をオレンジに変更しか結果
result of bg3
tk_bosqueメソッドで背景を変更した結果

それぞれ色の変更のされ方が異なっていると思います。

ウィンドウの色の詳しい変更の仕方はコチラ:
「ウィンドウの色」の変更方法

また、プログラミングで使えるカラーコード一覧はコチラ:
使用可能なカラーコード一覧

以上となります。
最後まで見ていただきありがとうございました。

プログラミング学習に役立つ参考書人気のプログラミングスクールもランキング形式で紹介しています。

[2024年版][難易度別] Python学習にオススメな参考書:厳選9冊!Pythonを勉強する初心者から中級者を対象として、2023年現在で本当に良いと感じた厳選9冊を紹介しています。Pythonの基礎を学べる書籍から、GUI、アプリ作成、機械学習などを学べる書籍まで幅広く紹介しています!レビューも書き込んでいます!...
【2023年最新】プログラミング上達の近道とは?スクールに通うメリットやおすすめランキングも徹底解説!プログラミングを上達するための近道を紹介しています。また、2023年度に人気の優良プログラミングスクールをランキング形式で紹介しています!特にプログラミングスクールの選び方を難易度、料金、特徴など様々な観点から紹介しています。自分自身の目的に合ったスクール選びの助けとなれば幸いです。...