本記事では、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="(自由テキスト)")
■ボタンを作成する
「ボタン」ウィジェットをGUI上に表示させた結果は以下のようになります。
ボタンウィジェットはクリックすることで「クリックイベント」を発生させることができます。
tk.Button(root, text="(自由テキスト)")
■チェックボタンを作成する
「チェックボタン」ウィジェットをGUI上に配置した結果はこのようになります。
該当する項目の「ON/OFF」を任意の数だけ指定することができるウィジェットのこと
■ラジオボタンを作成する
「ラジオボタン」ウィジェットをGUI上に配置した結果はこのようになります。
表示されている項目のうち一つだけを「ON」にすることができるウィジェットのこと
■エントリーボックスを作成する
「エントリーボックス」をGUI上に配置した結果はこのようになります。
エントリーボックスは、テキスト入力ができるウィジェットです。
入力した値を用いて様々な処理を行うことができます。
tk.Entry(root)
■リストボックスを作成
「リストボックス」をGUI上に配置した結果はこのようになります。
リストボックスは、選択肢を一覧として表示させられるウィジェットです。ここで表示させた選択肢から一つを選択して値を返すことができます。
また、オプションを追加すると複数選択ができるようにもなります。
スポンサーリンク
■オプションメニューボタンを作成する
「オプションメニューボタン」はボタンクリック時に選択肢を下記のように表示させられるウィジェットです。
ボタンの横に「-」マークがあるのが特徴的です。
実際に表示させると下記のようになります。
tk.OptionMenu(master, variable, *values, **kwargs)
GUI上に作成されたボタンをクリックすると選択肢の一覧が表示されます。
■スピンボックスを作成する
「スピンボックス」は数値や任意の選択肢を右側の▲▼ボタンで変更できるウィジェットです。
数値は下記のように、整数単位でも変更できますしオプションを指定することで小数単位でも変更させることができます。
また、数値だけでなく任意の選択肢を選ばせることもできます。
■区切り線を作成する
区切り線はGUIの画面上に直線を引くことができるウィジェットです。
tkinterの「Separatorメソッド」を使用します。直線の長さや色も自由に指定することができます。
ttk.Separator ( parent , option )
■タブ付きウィンドウを作成する
タブ付きウィジェットをGUI上に表示させた結果はこのようになります。表示されたタブ付きウィジェット上の「タブ」をクリックすることで表示される画面を切り替えることができます。
実際に使用する場合は、Tkinterの「notebookメソッド」を用います。
タブの個数や大きさなども自由に変更することができます!
■図形を作成・配置するためのウィジェットを作成
Tkinterで作成したGUI上に図形を配置したり画像を挿入したりする場合には、「Canvas」というウィジェットを配置させる必要があります。
実際に配置してみると下記のようになりました。
(分かりやすいように色を水色にしています)
Canvasを使用して長方形を作成してみると下記のようになります。
他にも、円や三角形、多角形など様々な図形をCanvas上に作成することができます。
■メニューバーの作成
「メニューバー」は作成したGUIの上部に ”ファイル” や ”編集” といったような項目を設定できます。
使用する場合には、tk.Menu()メソッドを使用します。
editmenu=tk.Menu(menubar)
menubar.add_cascade(label="編集",menu=editmenu)
実際にGUI上に配置してみるとこのようになります。
配置したメニューバーには、上図のように「新規作成」「上書き保存」「名前を変更して保存」などの要素を追加させることもできます。
■スケールウィジェットの作成
「スケールウィジェット」は、スライドバーを動かすことで任意の値を取得できるようにするウィジェットです。
実際に使用する場合には、tk.Scale()メソッドを使用します。
スケールウィジェットは、色や外観などを変更できるオプションがあります。
スポンサーリンク
スポンサーリンク
その他Tkinterで使える様々なオプション機能
機能を追加できるオプション一覧
上記で紹介した様々なウィジェットの他にも、GUIに実装できる機能がたくさんあるので紹介していきます!
progressbar | プログレスバーを表示させる |
toplevel | 新規ウィンドウを表示させる |
setfocus | 指定したウィジェットにフォーカスをあてる |
filedialog | ファイルダイアログを開く |
setPalette, bisque | ウィンドウの色を変更する |
■プログレスバーを表示させる
「プログレスバー」は、何かの処理が実行中であることを示すウィジェットです。このプログレスバーには「確定的プログレスバー」と「非確定的プログレスバー」の二種類があります。
「確定的プログレスバー」は、下図の上側に示したプログレスバーのことで処理の進捗を割合で可視化してくれます。
「非確定的プログレスバー」は、下図の下側に示したプログレスバーのことで処理の進捗具合に関わらずバーが移動し続けます。
GUIを作成する際に、プログレスバーの機能を追加するとユーザーにとっては使いやすいものになりますね。
■新規ウィンドウを作成する
Tkinterでは、作成したGUIからさらに新規でウィンドウを表示させるtk.Toplevel()メソッドがあります。
tk.Toplevel()をボタンのクリックイベント等に紐づけることで新規ウィンドウを表示させることができます。
tk.Toplevel()
新規ウィンドウを表示させることができれば、任意の処理をさせたりグラフや画像を表示したりなどGUIの幅を広げることができます。
■ウィジェットにフォーカスを当てる
TkinterでもGUI上に配置したウィジェットに対してフォーカスを当てることができます。ここでいうフォーカスは、任意のウィジェットが選択された状態のことを指します。
フォーカスをセットするためには、Tkinterのfocus_set()メソッドを使用します。
ウィジェット名.focus_set()
このfocus_set()メソッドを用いると矢印キーを使ってウィジェットのフォーカスを変更させることもできます。
■ファイルダイアログを表示させる
「ファイルダイアログ」はファイル・データを操作するために一時的に開かれるウィンドウのことです。
GUI上でファイルを開いたり保存したりする際には必須の機能です。
下記のようにダイアログを表示させることができます。
■ウィンドウの色を変更させる
Tkinterで作成するGUIは、ウィンドウや配置するウィジェットの色を変更することができます。
ウィジェット自体の色を変更したい場合には、対象とするウィジェットのオプションで背景や文字色等の色(background, foreground)を指定します。
一方で、ウィンドウ自体の背景色を変更したい場合には専用のメソッドを使用します。色の変更方法としては下記の3パターンがあります。
- configメソッド
- tk_setPaletteメソッド
- tk_bisqueメソッド
それぞれ異なった特徴があります。
それぞれの一例を下記に示してみます。
それぞれ色の変更のされ方が異なっていると思います。
以上となります。
最後まで見ていただきありがとうございました。
プログラミング学習に役立つ参考書や人気のプログラミングスクールもランキング形式で紹介しています。