サーチ…


備考

Tkinter(「 Tk Inter face」)は、グラフィカルユーザーインターフェイス(GUI)を作成するためのPythonの標準クロスプラットフォームパッケージです。これはTkツールキットを使って基礎となるTclインタプリタへのアクセスを提供します。それ自体はクロスプラットフォームの多言語グラフィカルユーザインタフェースライブラリです。

TkinterはPython用の唯一のGUIライブラリではありませんが、標準で提供されています。 Pythonで使用できるその他のGUIライブラリには、 wxPythonPyQt 、および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()

そして、このようなものがポップアップするはずです:

tkinterウィンドウ

こんにちは世界! (モジュラ、オブジェクト指向)

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)、シングルページアプリケーション、および複数ページアプリケーションをサポートするという点で少なくとも最も柔軟性があります。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow