1. TOP
  2. ブログ
  3. PythonのGUIライブラリ「Tkinter」の紹介

PythonのGUIライブラリ「Tkinter」の紹介

PythonのGUIライブラリは複数ありますが、今回は標準で付属している「Tkinter」についての紹介です。

 

Tkinterとは?

 

Tkinter(ティーキンター, ティーケーインター)はWindows、Mac OSX、Linuxといった主要なOSに対応しているクロスプラットフォームなGUIライブラリです。
Tkinterの前に、Tcl/Tkについて簡単に知っておく必要があります。
まず、Tcl(ティクル、tool command languageの略)というスクリプト言語が1988年に登場しました。非常にシンプルな仕組みの言語として有名です。
その後、Tk(Tool Kitの略)という、TclでGUIを開発するためのツールキットが開発されます。

これらを指して「Tcl/Tk」と呼び、今でもGUIの開発では根強い人気があります。
Tkinterは、このTcl/TkをPythonで扱うためのライブラリで、Python以外にも、Ruby、Perl等の言語でもTkinterのようなライブラリが存在します。

 

 

Tkinterのメリット

 

最も大きいメリットは、Pythonに標準で付属していることです。標準で付属しているということは、Pythonさえ入っていれば動くということです。
他のGUIライブラリを使おうとすると、インストールが上手く行かないというケースがよくあります。OS等の環境によっては非常に面倒な操作が必要になるケースもありますが、Tkinterならばこのようなトラブルは起きません。

また、Unix系のOSならば少なくともPythonの2.7は標準で含まれているのが殆どですから、ソースコードを渡すだけで配布が終了する、というケースも出てくるでしょう。
もちろん、Pyinstaller等を使って実行ファイルの形式にすることも可能です。

 

 

Tkinterのデメリット

 

Tkinterが利用されない最も多い意見は、恐らく「見た目が古臭い」というものです。
しかし、Tk8.5でルックアンドフィールは大きく改善されています。Python3系にはこのTk8.5が、Python3.4以降ではTk8.6が標準になっているので、この見た目の問題はかなり解決されました。

次に、Tcl/Tkはコンパクトなのですが、それ故他のGUIライブラリに比べると機能面が少し貧弱、と感じる方も多いようです。Tk8.5でテーマ付きのウィジェットが導入され使いやすくなっていますが、他の大きめのGUIライブラリに比べると不満を持つ方はまだいらっしゃるようです。
最後のデメリットは、基となっている言語、つまりTcl/Tkです。
他の多くのGUIライブラリは、C、C++が基になっています。しかし、TkinterはTcl/Tkです。

滅多に起こるケースではありませんが、Tkinterを利用する上でTcl/Tkレベルの処理を考えることがあります。しかしTcl/Tkは情報が少なく、これは少し骨が折れます。
とはいっても滅多には起きませんし、大抵は解決策がどこかにあり、無視できる程度のデメリットです。

 

 

Tkinterのチュートリアル

 

日本語情報だと、以下のようなチュートリアルページがあります。
Python2系の頃に作成されたので、いくつか書き換えが必要な部分がありますが、それでも分かりやすいサイトです。

Tkinter入門:1.Hello World!

お気楽 Python/Tkinter入門

英語のサイトですが、以下のサイトがお勧めです。

TkDocs – Tk Tutorial

こちらのサイトは、今のTkinterのベストなプラクティクスを自然と学べるだけでなく、Python以外のTcl、Ruby、Perlでのサンプルコードも載っています。
量や質も文句なしで、こちらのサイトを一通り見れば確かな知識が身につくはずです。
Google翻訳にて、ページのURLを貼り付けるとそのページがそのまま翻訳されます。試したところ、なんとか理解できる程度には読むことができました。

ブログ等で情報を発信されている方も(少なめですが)いますし、入門書籍ではTkinterでのサンプルアプリが載っていることもあります。前述したように、導入で躓くこともまずありません。
初心者の方には最適と言えるかもしれません。

 

 

 

株式会社キャパでは、アプリの企画・開発についてご相談を承っています。

アプリを作りたいので、具体的な提案が欲しい。頭の中にあるアイデアを本当に実現できるのか知りたい。予算内に収まるのか?
などのお客様のご相談に、親身に応じます。
アプリ開発:実績のご紹介

    カテゴリ一覧

    PAGE TOP