KURORO BLOGのロゴ

このエントリーをはてなブックマークに追加
Tkinterで使われるWidgetの一覧をまとめてみました!?

Tkinterで使われるWidgetの一覧をまとめてみました!?

今回はTkinterで使われるWidgetの一覧をまとめてみました。Widgetに関して理解を深めたい、 Tkinterで使われるWidgetの一覧を知りたい方へおすすめです。ぜひ最後までご確認ください。

目次
  1. そもそもTkinterで使われるWidgetとは?
    1. Tkinterの構成要素
  2. Tkinterで使われるWidget一覧紹介
    1. label Widget
    2. button Widget
    3. checkbutton Widget
    4. radiobutton Widget
    5. menu Widget
    6. menubutton Widget
    7. scale Widget
    8. spinbox Widget
    9. listbox Widget
    10. entry Widget
    11. text Widget
    12. scrollbar Widget
    13. canvas Widget
    14. optionmenu Widget
    15. combobox Widget
    16. scrolledtext Widget
    17. progressbar Widget
    18. treeview Widget
  3. Widgetの配置方法【3種類】
  4. まとめ
  5. 参考文献
目次を開く⬇︎

執筆者 - おすすめの記事3選

そもそもTkinterで使われるWidgetとは?

Tkinterで使われるWidgetとは、1つの機能を持つ最小単位を意味します。

言葉だけでは、Widgetに関してイメージしづらいですね。。以下の「Tkinterの構成要素」を確認しながら、理解を深めましょう。

Tkinterの構成要素

Tkinterの構成要素として、Window, Frame, Widgetの概念が存在します。

名称説明文
Window 画像における緑色枠の部分になります。Tkinter画面全体を表します。
Frame画像における青色枠の部分になります。Widgetが1つ以上ある場合に、取りまとめるものです。
Widget赤色枠の箇所をWidgetと呼びます。1つの機能を持つ最小単位 = Widgetと考えると良いでしょう。

要するに、赤色枠で囲まれる箇所へ、Widget(label Widget, button Widget など)を配置して、Tkinterを実装することになります。

Tkinterで使われるWidget一覧紹介

先ほどは「Tkinterの構成要素」をもとに、そもそもTkinterで使われるWidgetとは何なのか、解説いたしました。

「Tkinterで使われるWidget一覧紹介」では、各種Widget(label Widget, button Widget など)の定義や使い方を、簡単に紹介していきます。

label Widget

label Widgetは、文字や画像などをTkinter画面上に表示する場合に利用します。

1import tkinter as tk
2
3tk.Label(option1, option2, ...) or tk.Label('親要素', option1, option2, ...)

で定義されます。

例えば以下のようなコードを作成すると、

1import tkinter as tk
2
3class Application(tk.Frame):
4    # label Widgetを取得する関数
5    def getLabel(self):
6        # Windowを親要素として、frame Widget(Frame)を作成する。
7        # Frameについて : https://kuroro.blog/python/P20XOidA5nh583fYRvxf/
8        frame = tk.Frame(self.master)
9        # Windowを親要素として、frame Widget(Frame)をどのように配置するのか?
10        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
11        frame.pack()
12
13        # frame Widget(Frame)を親要素として、label Widgetを作成する。
14        # text : テキスト情報
15        # width : 幅の設定
16        # bg : 背景色の設定
17        # 色について : https://kuroro.blog/python/YcZ6Yh4PswqUzaQXwnG2/
18        # Labelについて : https://kuroro.blog/python/Pj4Z7JBNRvcHZvtFqiKD/
19        label = tk.Label(frame, text="test", width=10, bg="#008000")
20        # frame Widget(Frame)を親要素として、label Widgetをどのように配置するのか?
21        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
22        label.pack()
23
24    def __init__(self, master=None):
25        # Windowの初期設定を行う。
26        super().__init__(master)
27        # Windowの画面サイズを設定する。
28        # geometryについて : https://kuroro.blog/python/rozH3S2CYE0a0nB3s2QL/
29        self.master.geometry("300x200")
30        self.getLabel()
31
32# Tkinter初学者参考 : https://docs.python.org/ja/3/library/tkinter.html#a-simple-hello-world-program
33if __name__ == "__main__":
34    # Windowを生成する。
35    # Windowについて : https://kuroro.blog/python/116yLvTkzH2AUJj8FHLx/
36    root = tk.Tk()
37    app = Application(master=root)
38
39    # Windowをループさせて、継続的にWindow表示させる。
40    # mainloopについて : https://kuroro.blog/python/DmJdUb50oAhmBteRa4fi/
41    app.mainloop()

以下の画像のように、label Widgetを描画します。

label Widgetに関しては、【初学者必見!?】Tkinterで使われるlabelの活用方法を徹底解説でまとめていますので、詳しく知りたい方は是非ご確認ください。

button Widget

button Widgetは、「何かをする」という目的の為に、押すものとして表示する場合に利用します。

1import tkinter as tk
2
3tk.Button(option1, option2, ...) or tk.Button('親要素', option1, option2, ...)

で定義されます。

例えば以下のようなコードを作成すると、

1import tkinter as tk
2
3class Application(tk.Frame):
4    # button Widgetを取得する関数
5    def getButton(self):
6        # Windowを親要素として、frame Widget(Frame)を作成する。
7        # Frameについて : https://kuroro.blog/python/P20XOidA5nh583fYRvxf/
8        frame = tk.Frame(self.master)
9        # Windowを親要素として、frame Widget(Frame)をどのように配置するのか?
10        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
11        frame.pack()
12
13        # frame Widget(Frame)を親要素として、button Widgetを作成する。
14        # text : テキスト情報
15        # width : 幅の設定
16        # Buttonについて : https://kuroro.blog/python/oFju6EngDtcYtIiMIDf1/
17        button = tk.Button(frame, text="test", width=10)
18        # frame Widget(Frame)を親要素として、button Widgetをどのように配置するのか?
19        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
20        button.pack()
21
22    def __init__(self, master=None):
23        # Windowの初期設定を行う。
24        super().__init__(master)
25        # Windowの画面サイズを設定する。
26        # geometryについて : https://kuroro.blog/python/rozH3S2CYE0a0nB3s2QL/
27        self.master.geometry("300x200")
28        self.getButton()
29
30# Tkinter初学者参考 : https://docs.python.org/ja/3/library/tkinter.html#a-simple-hello-world-program
31if __name__ == "__main__":
32    # Windowを生成する。
33    # Windowについて : https://kuroro.blog/python/116yLvTkzH2AUJj8FHLx/
34    root = tk.Tk()
35    app = Application(master=root)
36
37    # Windowをループさせて、継続的にWindow表示させる。
38    # mainloopについて : https://kuroro.blog/python/DmJdUb50oAhmBteRa4fi/
39    app.mainloop()

以下の画像のように、button Widgetを描画します。

button Widgetに関しては、Tkinterで使われるbuttonとは?コード例を交えて実践的な活用方法を解説でまとめていますので、詳しく知りたい方は是非ご確認ください。

checkbutton Widget

checkbutton Widgetは、選択するとレ点(チェックマーク)が付く、見た目が四角な画面の部品を表示する場合に利用します。

1import tkinter as tk
2
3tk.Checkbutton(option1, option2, ...) or tk.Checkbutton('親要素', option1, option2, ...)

で定義されます。

例えば以下のようなコードを作成すると、

1import tkinter as tk
2
3class Application(tk.Frame):
4    # checkbutton Widgetを取得する関数
5    def getCheckbutton(self):
6        # Windowを親要素として、frame Widget(Frame)を作成する。
7        # Frameについて : https://kuroro.blog/python/P20XOidA5nh583fYRvxf/
8        frame = tk.Frame(self.master)
9        # Windowを親要素として、frame Widget(Frame)をどのように配置するのか?
10        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
11        frame.pack()
12
13        # frame Widget(Frame)を親要素として、checkbutton Widgetを作成する。
14        # text : テキスト情報
15        # Checkbuttonについて : https://kuroro.blog/python/gspi4F2pMIkzHN7l0f1F/
16        checkbutton = tk.Checkbutton(frame, text="test")
17        # frame Widget(Frame)を親要素として、checkbutton Widgetをどのように配置するのか?
18        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
19        checkbutton.pack()
20
21    def __init__(self, master=None):
22        # Windowの初期設定を行う。
23        super().__init__(master)
24        # Windowの画面サイズを設定する。
25        # geometryについて : https://kuroro.blog/python/rozH3S2CYE0a0nB3s2QL/
26        self.master.geometry("300x200")
27        self.getCheckbutton()
28
29# Tkinter初学者参考 : https://docs.python.org/ja/3/library/tkinter.html#a-simple-hello-world-program
30if __name__ == "__main__":
31    # Windowを生成する。
32    # Windowについて : https://kuroro.blog/python/116yLvTkzH2AUJj8FHLx/
33    root = tk.Tk()
34    app = Application(master=root)
35
36    # Windowをループさせて、継続的にWindow表示させる。
37    # mainloopについて : https://kuroro.blog/python/DmJdUb50oAhmBteRa4fi/
38    app.mainloop()

以下の画像のように、checkbutton Widgetを描画します。

checkbutton Widgetに関しては、【初心者必見!?】Tkinterで使われるcheckbuttonを徹底解説!?でまとめていますので、詳しく知りたい方は是非ご確認ください。

radiobutton Widget

radiobutton Widgetは、複数の選択肢の中から、1つを選ぶときに使われる入力フォームを表示する場合に、利用します。

1import tkinter as tk
2
3tk.Radiobutton(option1, option2, ...) or tk.Radiobutton('親要素', option1, option2, ...)

で定義されます。

例えば以下のようなコードを作成すると、

1import tkinter as tk
2
3class Application(tk.Frame):
4    # radiobutton Widgetを取得する関数
5    def getRadiobutton(self):
6        # Windowを親要素として、frame Widget(Frame)を作成する。
7        # Frameについて : https://kuroro.blog/python/P20XOidA5nh583fYRvxf/
8        frame = tk.Frame(self.master)
9        # Windowを親要素として、frame Widget(Frame)をどのように配置するのか?
10        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
11        frame.pack()
12
13        # frame Widget(Frame)を親要素として、radiobutton Widgetを作成する。
14        # text : テキスト情報
15        # Radiobuttonについて : https://kuroro.blog/python/ztJbt5uabbTBMCGcljHc/
16        radiobutton = tk.Radiobutton(frame, text="test")
17        # frame Widget(Frame)を親要素として、radiobutton Widgetをどのように配置するのか?
18        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
19        radiobutton.pack()
20
21    def __init__(self, master=None):
22        # Windowの初期設定を行う。
23        super().__init__(master)
24        # Windowの画面サイズを設定する。
25        # geometryについて : https://kuroro.blog/python/rozH3S2CYE0a0nB3s2QL/
26        self.master.geometry("300x200")
27        self.getRadiobutton()
28
29# Tkinter初学者参考 : https://docs.python.org/ja/3/library/tkinter.html#a-simple-hello-world-program
30if __name__ == "__main__":
31    # Windowを生成する。
32    # Windowについて : https://kuroro.blog/python/116yLvTkzH2AUJj8FHLx/
33    root = tk.Tk()
34    app = Application(master=root)
35
36    # Windowをループさせて、継続的にWindow表示させる。
37    # mainloopについて : https://kuroro.blog/python/DmJdUb50oAhmBteRa4fi/
38    app.mainloop()

以下の画像のように、radiobutton Widgetを描画します。

radiobutton Widgetに関しては、Tkinterで使われるradiobuttonとは?活用方法から実用例を徹底解説でまとめていますので、詳しく知りたい方は是非ご確認ください。

menu Widget

menu Widgetは、パソコン上(うえ)に表示される選択肢を表示する場合に利用します。

1import tkinter as tk
2
3tk.Menu()

で定義されます。

例えば以下のようなコードを作成すると、

1import tkinter as tk
2
3class Application(tk.Frame):
4    # menu Widgetを取得する関数
5    def getMenu(self):
6        # menubarを作成して、menubarをWindow内のmenubarとする。
7        # Menuを作成する。menuBarとする。
8        # Menuについて : https://kuroro.blog/python/ZITZ7dM4nundAhMbChXs/
9        menuBar = tk.Menu()
10        # Window内のmenubarを、先ほど作成したmenuBarとする。
11        self.master.config(menu=menuBar)
12
13        # サブメニューを作成する。
14        # サブメニューとは? : https://kotobank.jp/word/%E3%82%B5%E3%83%96%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC-3747#:~:text=%E9%9A%8E%E5%B1%A4%E7%9A%84%E3%81%AB%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C,%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E6%93%8D%E4%BD%9C%E3%81%A7%E8%A1%A8%E7%A4%BA%E3%81%A7%E3%81%8D%E3%82%8B%E3%80%82
15        # Menuを作成する。fileMenuとする。
16        # Menuについて : https://kuroro.blog/python/ZITZ7dM4nundAhMbChXs/
17        fileMenu = tk.Menu()
18        # label : サブメニュー名の設定
19        fileMenu.add_command(label="Exit")
20
21        # menubarへ、Fileと名付けられたメインメニューを追加する。そしてFileと名付けられたメインメニュー内に、サブメニューを追加する。
22        # メインメニューとは? : https://kotobank.jp/word/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC-9213
23        # label : メインメニュー名の設定
24        # menu : メインメニュー内に含む、サブメニューを設定
25        menuBar.add_cascade(label="File", menu=fileMenu)
26
27    def __init__(self, master=None):
28        # Windowの初期設定を行う。
29        super().__init__(master)
30        # Windowの画面サイズを設定する。
31        # geometryについて : https://kuroro.blog/python/rozH3S2CYE0a0nB3s2QL/
32        self.master.geometry("300x200")
33        self.getMenu()
34
35# Tkinter初学者参考 : https://docs.python.org/ja/3/library/tkinter.html#a-simple-hello-world-program
36if __name__ == "__main__":
37    # Windowを生成する。
38    # Windowについて : https://kuroro.blog/python/116yLvTkzH2AUJj8FHLx/
39    root = tk.Tk()
40    app = Application(master=root)
41
42    # Windowをループさせて、継続的にWindow表示させる。
43    # mainloopについて : https://kuroro.blog/python/DmJdUb50oAhmBteRa4fi/
44    app.mainloop()

以下の画像のように、menu Widgetを描画します。

menu Widgetに関しては、もう間違えない!?Tkinterで使われるmenubarの作成手順を徹底解説!?でまとめていますので、詳しく知りたい方は是非ご確認ください。

menubutton Widget

menubutton Widgetは、menubuttonを選択すると、様々なmenuを展開できる入れ物を表示する場合に利用します。

1import tkinter as tk
2
3tk.Menubutton(option1, option2, ...) or tk.Menubutton('親要素', option1, option2, ...)

で定義されます。

例えば以下のようなコードを作成すると、

1import tkinter as tk
2
3class Application(tk.Frame):
4    # menubutton Widgetを取得する関数
5    def getMenubutton(self):
6        # Windowを親要素として、frame Widget(Frame)を作成する。
7        # Frameについて : https://kuroro.blog/python/P20XOidA5nh583fYRvxf/
8        frame = tk.Frame(self.master)
9        # Windowを親要素として、frame Widget(Frame)をどのように配置するのか?
10        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
11        frame.pack()
12
13        # frame Widget(Frame)を親要素として、menubutton Widgetを作成する。
14        # text : テキスト情報
15        # Menubuttonについて : https://kuroro.blog/python/Dfq4VCJ7OiEfYJv6ySge/
16        menubutton = tk.Menubutton(frame, text="test")
17        # frame Widget(Frame)を親要素として、menubutton Widgetをどのように配置するのか?
18        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
19        menubutton.pack()
20
21    def __init__(self, master=None):
22        # Windowの初期設定を行う。
23        super().__init__(master)
24        # Windowの画面サイズを設定する。
25        # geometryについて : https://kuroro.blog/python/rozH3S2CYE0a0nB3s2QL/
26        self.master.geometry("300x200")
27        self.getMenubutton()
28
29# Tkinter初学者参考 : https://docs.python.org/ja/3/library/tkinter.html#a-simple-hello-world-program
30if __name__ == "__main__":
31    # Windowを生成する。
32    # Windowについて : https://kuroro.blog/python/116yLvTkzH2AUJj8FHLx/
33    root = tk.Tk()
34    app = Application(master=root)
35
36    # Windowをループさせて、継続的にWindow表示させる。
37    # mainloopについて : https://kuroro.blog/python/DmJdUb50oAhmBteRa4fi/
38    app.mainloop()

以下の画像のように、menubutton Widgetを描画します。

menubutton Widgetに関しては、Tkinterで使われるmenubuttonとは?コードや画像を用いて解説!?でまとめていますので、詳しく知りたい方は是非ご確認ください。

scale Widget

scale Widgetは、ファイルのダウンロード状況やタスクの進捗などを視覚化するものを表示する場合に利用します。

1import tkinter as tk
2
3tk.Scale(option1, option2, ...) or tk.Scale('親要素', option1, option2, ...)

で定義されます。

例えば以下のようなコードを作成すると、

1import tkinter as tk
2
3class Application(tk.Frame):
4    # scale Widgetを取得する関数
5    def getScale(self):
6        # Windowを親要素として、frame Widget(Frame)を作成する。
7        # Frameについて : https://kuroro.blog/python/P20XOidA5nh583fYRvxf/
8        frame = tk.Frame(self.master)
9        # Windowを親要素として、frame Widget(Frame)をどのように配置するのか?
10        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
11        frame.pack()
12
13        # frame Widget(Frame)を親要素として、scale Widgetを作成する。
14        # Scaleについて : https://kuroro.blog/python/DUvG7YaE2i6jLwCxdPXJ/
15        scale = tk.Scale(frame)
16        # frame Widget(Frame)を親要素として、scale Widgetをどのように配置するのか?
17        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
18        scale.pack()
19
20    def __init__(self, master=None):
21        # Windowの初期設定を行う。
22        super().__init__(master)
23        # Windowの画面サイズを設定する。
24        # geometryについて : https://kuroro.blog/python/rozH3S2CYE0a0nB3s2QL/
25        self.master.geometry("300x200")
26        self.getScale()
27
28# Tkinter初学者参考 : https://docs.python.org/ja/3/library/tkinter.html#a-simple-hello-world-program
29if __name__ == "__main__":
30    # Windowを生成する。
31    # Windowについて : https://kuroro.blog/python/116yLvTkzH2AUJj8FHLx/
32    root = tk.Tk()
33    app = Application(master=root)
34
35    # Windowをループさせて、継続的にWindow表示させる。
36    # mainloopについて : https://kuroro.blog/python/DmJdUb50oAhmBteRa4fi/
37    app.mainloop()

以下の画像のように、scale Widgetを描画します。

scale Widgetに関しては、Tkinterで活用されるscaleとは?コードを通して徹底解説!?でまとめていますので、詳しく知りたい方は是非ご確認ください。

spinbox Widget

spinbox Widgetは、Webページやアプリの会員登録、お問い合わせ画面などで利用されるテキストボックスと、右側へ🔼🔽のボタンが付いたものを表示する場合に利用します。

1import tkinter as tk
2
3tk.Spinbox(option1, option2, ...) or tk.Spinbox('親要素', option1, option2, ...)

で定義されます。

例えば以下のようなコードを作成すると、

1import tkinter as tk
2
3class Application(tk.Frame):
4    # spinbox Widgetを取得する関数
5    def getSpinbox(self):
6        # Windowを親要素として、frame Widget(Frame)を作成する。
7        # Frameについて : https://kuroro.blog/python/P20XOidA5nh583fYRvxf/
8        frame = tk.Frame(self.master)
9        # Windowを親要素として、frame Widget(Frame)をどのように配置するのか?
10        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
11        frame.pack()
12
13        # frame Widget(Frame)を親要素として、spinbox Widgetを作成する。
14        # Spinboxについて : https://kuroro.blog/python/CQZWZZXhhyD3B1TWP3FN/
15        spinbox = tk.Spinbox(frame)
16        # frame Widget(Frame)を親要素として、spinbox Widgetをどのように配置するのか?
17        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
18        spinbox.pack()
19
20    def __init__(self, master=None):
21        # Windowの初期設定を行う。
22        super().__init__(master)
23        # Windowの画面サイズを設定する。
24        # geometryについて : https://kuroro.blog/python/rozH3S2CYE0a0nB3s2QL/
25        self.master.geometry("300x200")
26        self.getSpinbox()
27
28# Tkinter初学者参考 : https://docs.python.org/ja/3/library/tkinter.html#a-simple-hello-world-program
29if __name__ == "__main__":
30    # Windowを生成する。
31    # Windowについて : https://kuroro.blog/python/116yLvTkzH2AUJj8FHLx/
32    root = tk.Tk()
33    app = Application(master=root)
34
35    # Windowをループさせて、継続的にWindow表示させる。
36    # mainloopについて : https://kuroro.blog/python/DmJdUb50oAhmBteRa4fi/
37    app.mainloop()

以下の画像のように、spinbox Widgetを描画します。

spinbox Widgetに関しては、Tkinterで使われるspinboxとは!?用例を踏まえて徹底解説でまとめていますので、詳しく知りたい方は是非ご確認ください。

listbox Widget

listbox Widgetは、複数の選択肢の中から、1つ以上を選ぶときに使われる入力フォームを表示する場合に利用します。

1import tkinter as tk
2
3tk.Listbox(option1, option2, ...) or tk.Listbox('親要素', option1, option2, ...)

で定義されます。

例えば以下のようなコードを作成すると、

1import tkinter as tk
2
3class Application(tk.Frame):
4    # listbox Widgetを取得する関数
5    def getListbox(self):
6        # Windowを親要素として、frame Widget(Frame)を作成する。
7        # Frameについて : https://kuroro.blog/python/P20XOidA5nh583fYRvxf/
8        frame = tk.Frame(self.master)
9        # Windowを親要素として、frame Widget(Frame)をどのように配置するのか?
10        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
11        frame.pack()
12
13        # frame Widget(Frame)を親要素として、listbox Widgetを作成する。
14        # Listboxについて : https://kuroro.blog/python/XMWVRR2MEZAe4bpPDDXE/
15        listbox = tk.Listbox(frame)
16        for month in ("1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"):
17            # listboxへ選択肢を格納する。
18            # insert : listbox内の指定箇所(index(位置番号))へ、選択肢を格納する。
19            # tk.END : 末尾を表す。
20            listbox.insert(tk.END, month)
21        # frame Widget(Frame)を親要素として、listbox Widgetをどのように配置するのか?
22        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
23        listbox.pack()
24
25    def __init__(self, master=None):
26        # Windowの初期設定を行う。
27        super().__init__(master)
28        # Windowの画面サイズを設定する。
29        # geometryについて : https://kuroro.blog/python/rozH3S2CYE0a0nB3s2QL/
30        self.master.geometry("300x200")
31        self.getListbox()
32
33# Tkinter初学者参考 : https://docs.python.org/ja/3/library/tkinter.html#a-simple-hello-world-program
34if __name__ == "__main__":
35    # Windowを生成する。
36    # Windowについて : https://kuroro.blog/python/116yLvTkzH2AUJj8FHLx/
37    root = tk.Tk()
38    app = Application(master=root)
39
40    # Windowをループさせて、継続的にWindow表示させる。
41    # mainloopについて : https://kuroro.blog/python/DmJdUb50oAhmBteRa4fi/
42    app.mainloop()

以下の画像のように、listbox Widgetを描画します。

listbox Widgetに関しては、【サンプルコード付】Tkinterで使われるlistboxに関して徹底解説!?でまとめていますので、詳しく知りたい方は是非ご確認ください。

entry Widget

entry Widgetは、Webページやアプリの会員登録、お問い合わせ画面などで利用されるテキストボックスを表示する場合に利用します。

1import tkinter as tk
2
3tk.Entry(option1, option2, ...) or tk.Entry('親要素', option1, option2, ...)

で定義されます。

例えば以下のようなコードを作成すると、

1import tkinter as tk
2
3class Application(tk.Frame):
4    # entry Widgetを取得する関数
5    def getEntry(self):
6        # Windowを親要素として、frame Widget(Frame)を作成する。
7        # Frameについて : https://kuroro.blog/python/P20XOidA5nh583fYRvxf/
8        frame = tk.Frame(self.master)
9        # Windowを親要素として、frame Widget(Frame)をどのように配置するのか?
10        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
11        frame.pack()
12
13        # frame Widget(Frame)を親要素として、entry Widgetを作成する。
14        # Entryについて : https://kuroro.blog/python/PUZp77YFxrXvMCjpZbUg/
15        entry = tk.Entry(frame)
16        # frame Widget(Frame)を親要素として、entry Widgetをどのように配置するのか?
17        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
18        entry.pack()
19
20    def __init__(self, master=None):
21        # Windowの初期設定を行う。
22        super().__init__(master)
23        # Windowの画面サイズを設定する。
24        # geometryについて : https://kuroro.blog/python/rozH3S2CYE0a0nB3s2QL/
25        self.master.geometry("300x200")
26        self.getEntry()
27
28# Tkinter初学者参考 : https://docs.python.org/ja/3/library/tkinter.html#a-simple-hello-world-program
29if __name__ == "__main__":
30    # Windowを生成する。
31    # Windowについて : https://kuroro.blog/python/116yLvTkzH2AUJj8FHLx/
32    root = tk.Tk()
33    app = Application(master=root)
34
35    # Windowをループさせて、継続的にWindow表示させる。
36    # mainloopについて : https://kuroro.blog/python/DmJdUb50oAhmBteRa4fi/
37    app.mainloop()

以下の画像のように、entry Widgetを描画します。

entry Widgetに関しては、Tkinterで使われるentryって?有効な活用方法を徹底解説!?でまとめていますので、詳しく知りたい方は是非ご確認ください。

text Widget

text Widgetは、文字を入力、表示できる部品を表示する場合に利用します。

1import tkinter as tk
2
3tk.Text(option1, option2, ...) or tk.Text('親要素', option1, option2, ...)

で定義されます。

例えば以下のようなコードを作成すると、

1import tkinter as tk
2
3class Application(tk.Frame):
4    # text Widgetを取得する関数
5    def getText(self):
6        # Windowを親要素として、frame Widget(Frame)を作成する。
7        # Frameについて : https://kuroro.blog/python/P20XOidA5nh583fYRvxf/
8        frame = tk.Frame(self.master)
9        # Windowを親要素として、frame Widget(Frame)をどのように配置するのか?
10        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
11        frame.pack()
12
13        # frame Widget(Frame)を親要素として、text Widgetを作成する。
14        # Textについて : https://kuroro.blog/python/bK6fWsP9LMqmER1CBz9E/
15        text = tk.Text(frame)
16        # frame Widget(Frame)を親要素として、text Widgetをどのように配置するのか?
17        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
18        text.pack()
19
20    def __init__(self, master=None):
21        # Windowの初期設定を行う。
22        super().__init__(master)
23        # Windowの画面サイズを設定する。
24        # geometryについて : https://kuroro.blog/python/rozH3S2CYE0a0nB3s2QL/
25        self.master.geometry("300x200")
26        self.getText()
27
28# Tkinter初学者参考 : https://docs.python.org/ja/3/library/tkinter.html#a-simple-hello-world-program
29if __name__ == "__main__":
30    # Windowを生成する。
31    # Windowについて : https://kuroro.blog/python/116yLvTkzH2AUJj8FHLx/
32    root = tk.Tk()
33    app = Application(master=root)
34
35    # Windowをループさせて、継続的にWindow表示させる。
36    # mainloopについて : https://kuroro.blog/python/DmJdUb50oAhmBteRa4fi/
37    app.mainloop()

以下の画像のように、text Widgetを描画します。

text Widgetに関しては、Tkinterで使われるtext Widgetとは?コードを交えて徹底解説!?でまとめていますので、詳しく知りたい方は是非ご確認ください。

scrollbar Widget

scrollbar Widgetは、パソコン操作画面の右側または下側に表示される棒状の操作ツールを表示する場合に利用します。

1import tkinter as tk
2
3tk.Scrollbar('親要素', option1, option2, ...)

で定義されます。

例えば以下のようなコードを作成すると、

1import tkinter as tk
2
3class Application(tk.Frame):
4    # scrollbar Widgetを取得する関数
5    def getScrollBar(self):
6        # Windowを親要素として、frame Widget(Frame)を作成する。
7        # Frameについて : https://kuroro.blog/python/P20XOidA5nh583fYRvxf/
8        frame = tk.Frame(self.master)
9        # Windowを親要素として、frame Widget(Frame)をどのように配置するのか?
10        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
11        frame.pack()
12
13        # frame Widget(Frame)を親要素として、text Widgetを作成する。
14        # height : 高さを設定
15        # Textについて : https://kuroro.blog/python/bK6fWsP9LMqmER1CBz9E/
16        text = tk.Text(frame, height=4)
17
18        # frame Widget(Frame)を親要素として、scrollbar Widgetを作成する。
19        # orient option : 垂直scrollbarを作成するため、tk.VERTICALを設定。水平scrollbarの場合は、tk.HORIZONTALを設定する。
20        # command option : scrollbar Widgetを動かした場合に、連動して表示する内容を設定。今回は、text Widgetをy軸方向へ動かした内容を表示する。
21        # Scrollbarについて : https://kuroro.blog/python/vgx53M7D1d6C0R8ejp0V/
22        scrollbar = tk.Scrollbar(frame, orient=tk.VERTICAL, command=text.yview)
23
24        # scrollbar Widgetをtext Widgetに反映する
25        # scrollbar Widgetの設定内容をtext Widgetと紐付ける。
26        # yscrollcommand : text Widget内で上下移動した場合に、scrollbarが追従するように設定する。
27        text["yscrollcommand"] = scrollbar.set
28
29        # frame Widget(Frame)を親要素とした場合に、text Widgetをどのように配置するのか?
30        # gridについて : https://kuroro.blog/python/JoaowDiUdLAOj3cSBxiX/
31        text.grid(row=0, column=0)
32        # frame Widget(Frame)を親要素とした場合に、scrollbar Widgetをどのように配置するのか?
33        # gridについて : https://kuroro.blog/python/JoaowDiUdLAOj3cSBxiX/
34        scrollbar.grid(row=0, column=1, sticky=(tk.N, tk.S))
35
36    def __init__(self, master=None):
37        # Windowの初期設定を行う。
38        super().__init__(master)
39        # Windowの画面サイズを設定する。
40        # geometryについて : https://kuroro.blog/python/rozH3S2CYE0a0nB3s2QL/
41        self.master.geometry("300x200")
42        self.getScrollBar()
43
44# Tkinter初学者参考 : https://docs.python.org/ja/3/library/tkinter.html#a-simple-hello-world-program
45if __name__ == "__main__":
46    # Windowを生成する。
47    # Windowについて : https://kuroro.blog/python/116yLvTkzH2AUJj8FHLx/
48    root = tk.Tk()
49    app = Application(master=root)
50
51    # Windowをループさせて、継続的にWindow表示させる。
52    # mainloopについて : https://kuroro.blog/python/DmJdUb50oAhmBteRa4fi/
53    app.mainloop()

以下の画像のように、scrollbar Widgetを描画します。

scrollbar Widgetに関しては、Tkinterで使われるscrollbarとは?活用事例を交えて徹底解説でまとめていますので、詳しく知りたい方は是非ご確認ください。

canvas Widget

canvas Widgetは、様々な図形や画像を描画して表示する場合に利用します。

1import tkinter as tk
2
3tk.Canvas(option1, option2, ...) or tk.Canvas('親要素', option1, option2, ...)

で定義されます。

例えば以下のようなコードを作成すると、

1import tkinter as tk
2
3class Application(tk.Frame):
4    # canvas Widgetを取得する関数
5    def getCanvas(self):
6        # Windowを親要素として、frame Widget(Frame)を作成する。
7        # Frameについて : https://kuroro.blog/python/P20XOidA5nh583fYRvxf/
8        frame = tk.Frame(self.master)
9        # Windowを親要素として、frame Widget(Frame)をどのように配置するのか?
10        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
11        frame.pack()
12
13        # frame Widget(Frame)を親要素として、canvas Widgetを作成する。
14        # width : 幅の設定
15        # height : 高さの設定
16        # background : 背景色の設定
17        # 色について : https://kuroro.blog/python/YcZ6Yh4PswqUzaQXwnG2/
18        # Canvasについて : https://kuroro.blog/python/V63iINoXI8iwMeRMEJPK/
19        canvas = tk.Canvas(frame, width=250, height=500, background="white")
20
21        # canvas Widgetへ線を描画する。
22        # x1座標 : 200, y1座標 : 200, x2座標 : 10, y2座標 : 20, x3座標 : 60, y3座標 : 100, x4座標 : 40, y4座標 : 30
23        # fill : 線の色を設定
24        # Canvasについて : https://kuroro.blog/python/ANyM9WLpd0LSXRQAELOj/
25        canvas.create_line(200, 200, 10, 20, 60, 100, 40, 30, fill='black')
26
27        # frame Widget(Frame)を親要素とした場合に、canvas Widgetをどのように配置するのか?
28        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
29        canvas.pack()
30
31    def __init__(self, master=None):
32        # Windowの初期設定を行う。
33        super().__init__(master)
34        # Windowの画面サイズを設定する。
35        # geometryについて : https://kuroro.blog/python/rozH3S2CYE0a0nB3s2QL/
36        self.master.geometry("300x200")
37        self.getCanvas()
38
39# Tkinter初学者参考 : https://docs.python.org/ja/3/library/tkinter.html#a-simple-hello-world-program
40if __name__ == "__main__":
41    # Windowを生成する。
42    # Windowについて : https://kuroro.blog/python/116yLvTkzH2AUJj8FHLx/
43    root = tk.Tk()
44    app = Application(master=root)
45
46    # Windowをループさせて、継続的にWindow表示させる。
47    # mainloopについて : https://kuroro.blog/python/DmJdUb50oAhmBteRa4fi/
48    app.mainloop()

以下の画像のように、canvas Widgetを描画します。

canvas Widgetに関しては、Tkinterで使われるcanvasとは?canvasの作成方法を徹底解説でまとめていますので、詳しく知りたい方は是非ご確認ください。

optionmenu Widget

optionmenu Widgetは、optionmenu Widgetを選択すると、様々な選択肢を表示する入れ物を表示する場合に利用します。

1import tkinter as tk
2
3# 選択肢が単数の場合
4# 第一引数(必須) : 親要素
5# 第二引数(必須) : variable。現在選択されている選択肢の値
6# 第三引数(必須) : 選択肢
7# 第四引数(任意) : command option。optionmenu Widget内の選択肢を選択する場合に実行する関数を設定。
8tk.OptionMenu("親要素", "variable", "選択肢", command="関数名")
9
10# 選択肢が複数の場合
11# 第一引数(必須) : 親要素
12# 第二引数(必須) : variable。現在選択されている選択肢の値
13# ※ Nは4以上の整数
14# 第三引数〜第N引数(第四引数まで必須) : 選択肢1, 選択肢2, ...
15# 第(N + 1)引数(任意) : command option。optionmenu Widget内の選択肢を選択する場合に実行する関数を設定。
16tk.OptionMenu("親要素", "variable", "選択肢1", "選択肢2", ..., command="関数名")

で定義されます。

例えば以下のようなコードを作成すると、

1import tkinter as tk
2
3class Application(tk.Frame):
4    # optionmenu Widgetを取得する関数
5    def getOptionMenu(self):
6        # Windowを親要素として、frame Widget(Frame)を作成する。
7        # Frameについて : https://kuroro.blog/python/P20XOidA5nh583fYRvxf/
8        frame = tk.Frame(self.master)
9        # Windowを親要素として、frame Widget(Frame)をどのように配置するのか?
10        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
11        frame.pack()
12
13        # 現在選択されているoptionmenu Widget内の選択肢の値を、文字列変数として扱う。
14        # StringVarについて : https://kuroro.blog/python/K53voPjJuKFfYrjmP8FP/
15        var = tk.StringVar()
16        # set() : 初期値としてaaaの選択肢を設定する。
17        var.set('aaa')
18
19        # frame Widget(Frame)を親要素として、optionmenu Widgetを作成する。
20        # var : 現在選択されている選択肢の値。文字列変数(var)として値を持たせることで、可変として扱う。
21        # 'aaa', 'bbb' : 選択肢1, 選択肢2
22        # OptionMenuについて : https://kuroro.blog/python/LA789mm56rcPTvU3gfdW/
23        optionmenu = tk.OptionMenu(frame, var, 'aaa', 'bbb')
24
25        # frame Widget(Frame)を親要素とした場合に、optionmenu Widgetをどのように配置するのか?
26        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
27        optionmenu.pack()
28
29    def __init__(self, master=None):
30        # Windowの初期設定を行う。
31        super().__init__(master)
32        # Windowの画面サイズを設定する。
33        # geometryについて : https://kuroro.blog/python/rozH3S2CYE0a0nB3s2QL/
34        self.master.geometry("300x200")
35        self.getOptionMenu()
36
37# Tkinter初学者参考 : https://docs.python.org/ja/3/library/tkinter.html#a-simple-hello-world-program
38if __name__ == "__main__":
39    # Windowを生成する。
40    # Windowについて : https://kuroro.blog/python/116yLvTkzH2AUJj8FHLx/
41    root = tk.Tk()
42    app = Application(master=root)
43
44    # Windowをループさせて、継続的にWindow表示させる。
45    # mainloopについて : https://kuroro.blog/python/DmJdUb50oAhmBteRa4fi/
46    app.mainloop()

以下の画像のように、optionmenu Widgetを描画します。

optionmenu Widgetに関しては、Tkinterで使われるoptionmenuとは?活用事例を交えて徹底解説!?でまとめていますので、詳しく知りたい方は是非ご確認ください。

combobox Widget

combobox Widgetは、comboboxを選択すると、表示される様々な選択肢を選んだり、combobox内へ直接文字入力できるテキストボックスを表示する場合に利用します。

1from tkinter import ttk
2
3ttk.Combobox(option1, option2, ...) or ttk.Combobox('親要素', option1, option2, ...)

で定義されます。

例えば以下のようなコードを作成すると、

1import tkinter as tk
2from tkinter import ttk
3
4class Application(tk.Frame):
5    # combobox Widgetを取得する関数
6    def getCombobox(self):
7        # Windowを親要素として、frame Widget(Frame)を作成する。
8        # Frameについて : https://kuroro.blog/python/P20XOidA5nh583fYRvxf/
9        frame = tk.Frame(self.master)
10        # Windowを親要素として、frame Widget(Frame)をどのように配置するのか?
11        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
12        frame.pack()
13
14        # frame Widget(Frame)を親要素として、combobox Widgetを作成する。
15        # values : comboboxを選択すると、表示される様々な選択肢(バイキンマン, 食パンまんとする)の設定
16        # Comboboxについて : https://kuroro.blog/python/3ZzPkezBOeTN7lletMyG/
17        combobox = ttk.Combobox(frame, values=('バイキンマン', '食パンまん'))
18
19        # frame Widget(Frame)を親要素とした場合に、combobox Widgetをどのように配置するのか?
20        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
21        combobox.pack()
22
23    def __init__(self, master=None):
24        # Windowの初期設定を行う。
25        super().__init__(master)
26        # Windowの画面サイズを設定する。
27        # geometryについて : https://kuroro.blog/python/rozH3S2CYE0a0nB3s2QL/
28        self.master.geometry("300x200")
29        self.getCombobox()
30
31# Tkinter初学者参考 : https://docs.python.org/ja/3/library/tkinter.html#a-simple-hello-world-program
32if __name__ == "__main__":
33    # Windowを生成する。
34    # Windowについて : https://kuroro.blog/python/116yLvTkzH2AUJj8FHLx/
35    root = tk.Tk()
36    app = Application(master=root)
37
38    # Windowをループさせて、継続的にWindow表示させる。
39    # mainloopについて : https://kuroro.blog/python/DmJdUb50oAhmBteRa4fi/
40    app.mainloop()

以下の画像のように、combobox Widgetを描画します。

combobox Widgetに関しては、【コード付】Tkinterで活用されるcomboboxをわかりやすく解説!?でまとめていますので、詳しく知りたい方は是非ご確認ください。

scrolledtext Widget

scrolledtext Widgetは、テキストボックスにscrollbarをとりつけたものを表示する場合に利用します。

1from tkinter import scrolledtext
2
3scrolledtext.ScrolledText(option1, option2, ...) or scrolledtext.ScrolledText('親要素', option1, option2, ...)

で定義されます。

例えば以下のようなコードを作成すると、

1import tkinter as tk
2from tkinter import scrolledtext
3
4class Application(tk.Frame):
5    # scrolledtext Widgetを取得する関数
6    def getScrolledText(self):
7        # Windowを親要素として、frame Widget(Frame)を作成する。
8        # Frameについて : https://kuroro.blog/python/P20XOidA5nh583fYRvxf/
9        frame = tk.Frame(self.master)
10        # Windowを親要素として、frame Widget(Frame)をどのように配置するのか?
11        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
12        frame.pack()
13
14        # frame Widget(Frame)を親要素として、scrolledtext Widgetを作成する。
15        # ScrolledTextについて : https://kuroro.blog/python/r3HUUg7yh60zwYuwnmm2/
16        scrolledText = scrolledtext.ScrolledText(frame)
17
18        # frame Widget(Frame)を親要素とした場合に、scrolledtext Widgetをどのように配置するのか?
19        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
20        scrolledText.pack()
21
22    def __init__(self, master=None):
23        # Windowの初期設定を行う。
24        super().__init__(master)
25        # Windowの画面サイズを設定する。
26        # geometryについて : https://kuroro.blog/python/rozH3S2CYE0a0nB3s2QL/
27        self.master.geometry("300x200")
28
29        self.getScrolledText()
30
31# Tkinter初学者参考 : https://docs.python.org/ja/3/library/tkinter.html#a-simple-hello-world-program
32if __name__ == "__main__":
33    # Windowを生成する。
34    # Windowについて : https://kuroro.blog/python/116yLvTkzH2AUJj8FHLx/
35    root = tk.Tk()
36    app = Application(master=root)
37
38    # Windowをループさせて、継続的にWindow表示させる。
39    # mainloopについて : https://kuroro.blog/python/DmJdUb50oAhmBteRa4fi/
40    app.mainloop()

以下の画像のように、scrolledtext Widgetを描画します。

scrolledtext Widgetに関しては、Tkinterで使われるscrolledtextとは?活用例からコードを一挙紹介でまとめていますので、詳しく知りたい方は是非ご確認ください。

progressbar Widget

progressbar Widgetは、ファイルのダウンロード状況やタスクの進捗などを視覚化するものを表示する場合に利用します。

1from tkinter import ttk
2
3ttk.Progressbar(option1, option2, ...) or ttk.Progressbar('親要素', option1, option2, ...)

で定義されます。

例えば以下のようなコードを作成すると、

1import tkinter as tk
2from tkinter import ttk
3
4class Application(tk.Frame):
5    # progressbar Widgetを取得する関数
6    def getProgressBar(self):
7        # Windowを親要素として、frame Widget(Frame)を作成する。
8        # Frameについて : https://kuroro.blog/python/P20XOidA5nh583fYRvxf/
9        frame = tk.Frame(self.master)
10        # Windowを親要素とした場合に、frame Widget(Frame)をどのように配置するのか?
11        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
12        frame.pack()
13
14        # frame Widget(Frame)を親要素として、progressbar Widgetを作成する。
15        # value : バーの値の初期化。
16        # Progressbarについて : https://kuroro.blog/python/HY4ECz19LqMW0oAxDJzj/
17        progressbar = ttk.Progressbar(frame, value=50)
18
19        # frame Widget(Frame)を親要素とした場合に、progressbar Widgetをどのように配置するのか?
20        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
21        progressbar.pack()
22
23    def __init__(self, master=None):
24        # Windowの初期設定を行う。
25        super().__init__(master)
26        # Windowの画面サイズを設定する。
27        # geometryについて : https://kuroro.blog/python/rozH3S2CYE0a0nB3s2QL/
28        self.master.geometry("300x200")
29        self.getProgressBar()
30
31# Tkinter初学者参考 : https://docs.python.org/ja/3/library/tkinter.html#a-simple-hello-world-program
32if __name__ == "__main__":
33    # Windowを生成する。
34    # Windowについて : https://kuroro.blog/python/116yLvTkzH2AUJj8FHLx/
35    root = tk.Tk()
36    app = Application(master=root)
37
38    # Windowをループさせて、継続的にWindow表示させる。
39    # mainloopについて : https://kuroro.blog/python/DmJdUb50oAhmBteRa4fi/
40    app.mainloop()

以下の画像のように、progressbar Widgetを描画します。

progressbar Widgetに関しては、Tkinterで使われるprogressbarとは?コードを用いて徹底解説!?でまとめていますので、詳しく知りたい方は是非ご確認ください。

treeview Widget

treeview Widgetは、データを階層化し、表を作成して表示する場合に利用します。

1from tkinter import ttk
2
3ttk.Treeview(option1, option2, ...) or ttk.Treeview('親要素', option1, option2, ...)

で定義されます。

例えば以下のようなコードを作成すると、

1import tkinter as tk
2from tkinter import ttk
3
4class Application(tk.Frame):
5    # treeview Widgetの情報を格納する変数
6    treeview = None
7
8    def __init__(self, master=None):
9        # Windowの初期設定を行う。
10        super().__init__(master)
11
12        # Windowの画面サイズを設定する。
13        # geometryについて : https://kuroro.blog/python/rozH3S2CYE0a0nB3s2QL/
14        self.master.geometry("300x200")
15
16        # Windowを親要素として、frame Widget(Frame)を作成する。
17        # Frameについて : https://kuroro.blog/python/P20XOidA5nh583fYRvxf/
18        frame = tk.Frame(self.master)
19
20        # Windowを親要素とした場合に、frame Widget(Frame)をどのように配置するのか?
21        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
22        frame.pack()
23
24        # frame Widget(Frame)を親要素として、treeview Widgetを作成する。
25        # columns : 各データ列へ名前を設定。
26        # Treeviewについて : https://kuroro.blog/python/ApqhLmDSo5OJwuetvTvy/
27        self.treeview = ttk.Treeview(frame, columns=["colA", "colB", "colC"])
28
29        #############################################
30        # <各列に対してオプション設定>
31        # #0 : 階層列(ツリーカラム)を意味する。
32        # 階層列(ツリーカラム)のオプションを設定。
33        # width : 幅の設定
34        self.treeview.column("#0", width=100)
35        # colA列のオプションを設定。
36        # width : 幅の設定
37        self.treeview.column("colA", width=80)
38        # colB列のオプションを設定。
39        # width : 幅の設定
40        self.treeview.column("colB", width=80)
41        # colC列のオプションを設定。
42        # width : 幅の設定
43        self.treeview.column("colC", width=80)
44        #############################################
45
46        #############################################
47        # <各列の見出しに対してオプションを設定>
48        # #0 : 階層列(ツリーカラム)を意味する。
49        # 階層列(ツリーカラム)の見出し設定。階層列とする。
50        self.treeview.heading("#0", text="階層列")
51        # colA列の見出しを設定。データ列Aとする。
52        self.treeview.heading("colA", text="データ列A")
53        # colB列の見出しを設定。データ列Bとする。
54        self.treeview.heading("colB", text="データ列B")
55        # colC列の見出しを設定。データ列Cとする。
56        self.treeview.heading("colC", text="データ列C")
57        #############################################
58
59        #############################################
60        # <アイテムを挿入>
61        # 第一引数 : 階層化する場合、親要素のアイテムIDを指定。階層化しない場合、""を指定する。
62        # 第二引数 : どのindex(アイテム位置)へアイテムを挿入するのか指定する。tk.END : index(アイテムの最終位置)
63        # text option : 階層列へ表示するアイテムの名前を設定。
64        # open option : 子要素のアイテムを展開して表示するのかどうか設定する。True : 子要素のアイテムを展開して表示する, False : 子要素のアイテムを展開して表示しない、デフォルト。
65        # values option : データ列へ表示する値を設定。
66        # 戻り値 : アイテムID
67        itemAId = self.treeview.insert("", tk.END, text="itemA", open=True, values=("data1a", "data1b", "data1c"))
68        # 第一引数 : 階層化する場合、親要素のアイテムIDを指定。階層化しない場合、""を指定する。
69        # 第二引数 : どのindex(アイテム位置)へアイテムを挿入するのか指定する。tk.END : index(アイテムの最終位置)
70        # text option : 階層列へ表示するアイテムの名前を設定。
71        # open option : 子要素のアイテムを展開して表示するのかどうか設定する。True : 子要素のアイテムを展開して表示する, False : 子要素のアイテムを展開して表示しない、デフォルト。
72        # values option : データ列へ表示する値を設定。
73        # 戻り値 : アイテムID
74        itemBId = self.treeview.insert(itemAId, tk.END, text="itemB", open=True, values=("data2a", "data2b", "data2c"))
75        # 第一引数 : 階層化する場合、親要素のアイテムIDを指定。階層化しない場合、""を指定する。
76        # 第二引数 : どのindex(アイテム位置)へアイテムを挿入するのか指定する。tk.END : index(アイテムの最終位置)
77        # text option : 階層列へ表示するアイテムの名前を設定。
78        # values option : データ列へ表示する値を設定。
79        # 戻り値 : アイテムID
80        itemCId = self.treeview.insert(itemBId, tk.END, text="itemC", values=("data3a", "data3b", "data3c"))
81        # 第一引数 : 階層化する場合、親要素のアイテムIDを指定。階層化しない場合、""を指定する。
82        # 第二引数 : どのindex(アイテム位置)へアイテムを挿入するのか指定する。tk.END : index(アイテムの最終位置)
83        # text option : 階層列へ表示するアイテムの名前を設定。
84        # values option : データ列へ表示する値を設定。
85        # 戻り値 : アイテムID
86        itemDId = self.treeview.insert("", tk.END, text="itemD", values=("data4a", "data4b", "data4c"))
87        #############################################
88
89        # frame Widget(Frame)を親要素とした場合に、treeview Widgetをどのように配置するのか?
90        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
91        self.treeview.pack()
92
93# Tkinter初学者参考 : https://docs.python.org/ja/3/library/tkinter.html#a-simple-hello-world-program
94if __name__ == "__main__":
95    # Windowを生成する。
96    # Windowについて : https://kuroro.blog/python/116yLvTkzH2AUJj8FHLx/
97    root = tk.Tk()
98    app = Application(master=root)
99    # Windowをループさせて、継続的にWindow表示させる。
100    # mainloopについて : https://kuroro.blog/python/DmJdUb50oAhmBteRa4fi/
101    app.mainloop()

以下の画像のように、treeview Widgetを描画します。

treeview Widgetに関しては、Tkinterで使われるtreeviewとは?実用例やコードを交えて徹底解説!?でまとめていますので、詳しく知りたい方は是非ご確認ください。

Widgetの配置方法【3種類】

先ほどの「Tkinterで使われるWidget一覧紹介」では、各種Widgetの定義から使い方を簡単にお伝えしました。

紹介する中の、サンプルコードを確認して、気づいた方もいるかもしれませんが、

  • 各種Widgetを宣言するだけではダメ
  • Widgetを配置する関数の利用が必要

になります。

TkinterではWidgetを配置する関数として、

  • grid
  • pack
  • place

関数を用意しています。

gridに関しては、【徹底解説!?】Tkinterで使われるgridの活用方法を完全マスター!?でまとめていますので、詳しく知りたい方は是非ご確認ください。

packに関しては、【完全版!?】Tkinterを用いてpackの使い方や実例をわかりやすく解説!?でまとめていますので、詳しく知りたい方は是非ご確認ください。

placeに関しては、Tkinterで使われるplaceとは?サンプルコードを通して完全攻略!?でまとめていますので、詳しく知りたい方は是非ご確認ください。

まとめ

  • Tkinterで使われるWidgetとは、1つの機能を持つ最小単位を意味します。
  • Widgetを宣言するだけでなく、Widgetを配置する関数の利用が必要。
  • Widgetを配置する関数として、grid, pack, placeが用意される。

参考文献

記事に関するお問い合わせ