tkinter チュートリアル
tkinterの使い方
サーチ…
備考
Tkinter(「 Tk Inter face」)は、グラフィカルユーザーインターフェイス(GUI)を作成するためのPythonの標準クロスプラットフォームパッケージです。これはTkツールキットを使って基礎となるTclインタプリタへのアクセスを提供します。それ自体はクロスプラットフォームの多言語グラフィカルユーザインタフェースライブラリです。
TkinterはPython用の唯一のGUIライブラリではありませんが、標準で提供されています。 Pythonで使用できるその他のGUIライブラリには、 wxPython 、 PyQt 、およびkivyがあります。
Tkinterの最大の強みは、普遍性とシンプルさです。これは、ほとんどのプラットフォーム(Linux、OSX、Windows)の箱の外で動作し、最も一般的なタスク(ボタン、ラベル、描画キャンバス、複数行テキストなど)に必要な幅広いウィジェットを備えています。
学習ツールとして、tkinterには、名前付きフォント、バインドタグ、変数トレースなどのGUIツールキットに固有の機能がいくつかあります。
Python 2とPython 3の違い
TkinterはPython 2とPython 3の間ではほとんど変わりません。主な違いは、tkinterパッケージとモジュールの名前が変更されたことです。
Python 2.xでのインポート
Python 2.xでは、tkinterパッケージの名前はTkinter
であり、関連するパッケージは独自の名前を持っています。たとえば、次の例は、Python 2.xの典型的なimport文のセットを示しています。
import Tkinter as tk
import tkFileDialog as filedialog
import ttk
Python 3.xでのインポート
機能はPython 2と3の間であまり変化しませんでしたが、すべてのtkinterモジュールの名前が変更されました。以下は、Python 3.xの典型的なimport文のセットです:
import tkinter as tk
from tkinter import filedialog
from tkinter import ttk
参考文献
バージョン
Tcl
バージョン | 発売日 |
---|---|
8.6 | 2016-07-27 |
8.5 | 2016-02-12 |
8.4 | 2013-06-01 |
8.3 | 2002年10月18日 |
8.2 | 1999-12-16 |
8.1 | 1999-05-26 |
8.0 | 1999-03-09 |
Python
バージョン | 発売日 |
---|---|
3.6 | 2016-12-23 |
3.5 | 2015-09-13 |
3.4 | 2014-03-17 |
3.3 | 2012-09-29 |
3.2 | 2011年02月20日 |
3.1 | 2009-06-26 |
3.0 | 2008-12-03 |
2.7 | 2010-07-03 |
2.6 | 2008年10月2日 |
2.5 | 2006-09-19 |
2.4 | 2004-11-30 |
2.3 | 2003年7月29日 |
2.2 | 2001年12月21日 |
2.1 | 2001-04-15 |
2.0 | 2000-10-16 |
インストールまたはセットアップ
Tkinterには、Mac OS XとWindowsプラットフォーム用のPythonインストーラバイナリがあらかじめインストールされています。したがって、Mac OS XまたはWindowsプラットフォーム用の公式バイナリからPythonをインストールする場合は、Tkinterを使うのがよいでしょう。
DebianバージョンのLinuxでは、以下のコマンドを使って手動でインストールする必要があります。
Python 3の場合
sudo apt-get python3-tkをインストールする
Python 2.7の場合
sudo apt-get python-tkをインストールする
yumインストーラを使用しているLinuxディストリビューションでは、次のコマンドを使用してtkinterモジュールをインストールできます。
yum install tkinter
インストールの確認
Tkinterが正常にインストールされたかどうかを確認するには、Pythonコンソールを開いて次のコマンドを入力します。
import tkinter as tk # for Python 3 version
または
import Tkinter as tk # for Python 2.x version
上記のコマンドがエラーなしで実行された場合は、Tkinterが正常にインストールされています。
Tkinterのバージョンを確認するには、Python REPLに以下のコマンドを入力します:
Python 3.X用
import tkinter as tk
tk._test()
Python 2.X用
import Tkinter as tk
tk._test()
注意: Tkinter as tk
インポートは必須ではありませんが、バージョン間の整合性を保つのに役立ちます。
こんにちは世界! (最小)
古典的な "Hello、World!"を作成して、tkinterの基本知識をテストしましょう。プログラム。
まず、tkinterをインポートする必要があります。これはバージョンによって異なります(「Python 2と3の違い」を参照)
Python 3では、モジュールtkinter
は小文字のtを持ちます:
import tkinter as tk
Python 2では、モジュールTkinter
には大文字のT:
import Tkinter as tk
as tk
使用は厳密には必要ではありませんが、この例の残りの部分は両方のバージョンで同じように動作します。
tkinterモジュールをインポートしたので、 Tk
クラスを使用してアプリケーションのルートを作成できます。
root = tk.Tk()
これはアプリケーションのウィンドウとして機能します。 ( 追加のウィンドウは、代わりにToplevel
インスタンスでなければならないことに注意してください)
これでウィンドウができたので、 Label
を付けてテキストを追加しましょう
label = tk.Label(root, text="Hello World!") # Create a text label
label.pack(padx=20, pady=20) # Pack it into the window
アプリケーションの準備ができたら、 mainloop
メソッドを使ってアプリケーションを起動する( メインイベントループに入る)
root.mainloop()
これは、ウィンドウが閉じられたときにアプリケーションが停止するか、 root.destroy()
などのコールバック(後述)から終了関数を呼び出すまで、アプリケーションを開いて実行します。
すべてを一緒に入れて:
import tkinter as tk # Python 3.x Version
#import Tkinter as tk # Python 2.x Version
root = tk.Tk()
label = tk.Label(root, text="Hello World!") # Create a text label
label.pack(padx=20, pady=20) # Pack it into the window
root.mainloop()
そして、このようなものがポップアップするはずです:
こんにちは世界! (モジュラ、オブジェクト指向)
import tkinter as tk
class HelloWorld(tk.Frame):
def __init__(self, parent):
super(HelloWorld, self).__init__(parent)
self.label = tk.Label(self, text="Hello, World!")
self.label.pack(padx=20, pady=20)
if __name__ == "__main__":
root = tk.Tk()
main = HelloWorld(root)
main.pack(fill="both", expand=True)
root.mainloop()
注意:ルートウィンドウを含むtkinterウィジェットから継承することは可能です。 tkinter.Frame
から継承することは、複数のドキュメントインターフェイス(MDI)、単一ドキュメントインターフェイス(SDI)、シングルページアプリケーション、および複数ページアプリケーションをサポートするという点で少なくとも最も柔軟性があります。