KURORO BLOGのロゴ

このエントリーをはてなブックマークに追加
Tkinterで活用されるscaleとは?コードを通して徹底解説!?

Tkinterで活用されるscaleとは?コードを通して徹底解説!?

今回はTkinterで活用されるscaleに関して徹底解説いたします。Tkinterの使い方がわからない、scaleに関して詳しくなりたい方へおすすめです。是非最後までご確認ください。

目次
  1. そもそもTkinterで使われるscaleとは?
    1. Tkinterの構成要素
  2. 下準備
  3. Tkinterで活用されるscale Widgetの定義
    1. borderwidth, bd
    2. background, bg
    3. fg, foreground
    4. font
    5. cursor
    6. command
    7. width
    8. length
    9. relief
    10. from_
    11. to
    12. highlightcolor, highlightbackground, highlightthickness
    13. activebackground
    14. sliderrelief
    15. state
    16. showvalue
    17. label
    18. sliderlength
    19. resolution
    20. troughcolor
    21. tickinterval
    22. orient
  4. scaleで活用される関数【2種】
    1. get
    2. set
  5. ttk.Scale()を利用してみる
    1. 使用できるoptionに違いがある
    2. テーマ(名前)を利用して、scale Widgetの外観を変更
  6. まとめ
  7. 参考文献
目次を開く⬇︎

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

Tkinterで使われるscaleとは、Widgetの一種で、ファイルのダウンロード状況やタスクの進捗などを視覚化するものを意味します。

別名scale Widget, プログレスバーと呼ばれます。

少し言葉だけでは分かりづらいですね。。以下の「Tkinterの構成要素」を確認しながら、情報を整理しましょう。

Tkinterの構成要素

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

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

前の章でTkinterで活用されるscaleとは、Widgetの一種で、ファイルのダウンロード状況やタスクの進捗などを視覚化したものとお伝えしました。

「Tkinterの構成要素」の画像内では、紫色枠に該当するWidgetに対して、編集することになります。

Tkinterの構成要素を理解したところで、実際にscaleの活用方法を理解していきましょう。

下準備

今回は先ほど紹介した「Tkinterの構成要素」の画像を元に、scaleの使い方をお伝えします。

下にコードを貼り付けておきますので、画像と見比べながら、コードを確認してみてください。できれば、一緒にscaleを体験しましょう。

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

上記のコードをPython環境で実行すると、「Tkinterの構成要素」で紹介した画像の結果が表示されます。

Tkinterで活用されるscale Widgetの定義

scale Widgetは、

1tk.Scale(option1, option2, ...) or tk.Scale('親要素', option1, option2, ...)

で定義されます。

scale Widgetで使われるoptionの種類としては

  • borderwidth, bd
  • background, bg
  • fg, foreground
  • font
  • cursor
  • command
  • width
  • length
  • relief
  • from_
  • to
  • highlightcolor, highlightbackground, highlightthickness
  • activebackground
  • sliderrelief
  • state
  • showvalue
  • label
  • sliderlength
  • resolution
  • troughcolor
  • tickinterval
  • orient

があります。順番に見ていきましょう。

※ optionの種類一覧を調べたい場合は、以下のようにコードを記述してご確認ください。

1import tkinter as tk
2
3# scaleを生成する。
4scale = tk.Scale()
5# scaleに関するoptionの種類一覧を取得する。
6print(scale.keys())

borderwidth, bd

borderwidth option, bd optionを利用すると、scale Widgetの枠の大きさを設定します。

borderwidthとbd両方のoptionを用いて、値を設定した場合、後ろの引数に設定されるoptionが優先されます。

例えば下準備コードのself.scale = tk.Scale(frame)箇所を、以下のように変更すると、

1# 別解法 ##########################
2# self.scale = tk.Scale(frame)
3# self.scale.config(borderwidth=30) or self.scale.configure(borderwidth=30)
4##################################
5self.scale = tk.Scale(frame, borderwidth=30)

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

background, bg

background option, bg optionを利用すると、scale Widgetの背景色を設定します。

backgroundとbg両方のoptionを用いて、値を設定した場合、後ろの引数に設定されるoptionが優先されます。

色に関しては、Tkinterの色の使い方とは?活用例から色の一覧をまとめて紹介!?で総括していますので、詳しく知りたい方は是非ご確認ください。

例えば下準備コードのself.scale = tk.Scale(frame)箇所を、以下のように変更すると、

1# 別解法 ##########################
2# self.scale = tk.Scale(frame)
3# self.scale.config(background='green') or self.scale.configure(background='green')
4##################################
5# 色について : https://kuroro.blog/python/YcZ6Yh4PswqUzaQXwnG2/
6self.scale = tk.Scale(frame, background='green')

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

fg, foreground

fg option, foreground optionを利用すると、文字列色を変更できます。

fgとforeground両方のoptionを用いて、値を設定した場合、後ろの引数に設定されるoptionが優先されます。

例えば下準備コードのself.scale = tk.Scale(frame)箇所を、以下のように変更すると、

1# 別解法 ##########################
2# self.scale = tk.Scale(frame)
3# self.scale.config(foreground='red') or self.scale.configure(foreground='red')
4##################################
5# 色について : https://kuroro.blog/python/YcZ6Yh4PswqUzaQXwnG2/
6self.scale = tk.Scale(frame, foreground='red')

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

font

font optionを利用すると、文字の形式や大きさを変更できます。

fontに関しては、Tkinterで使われるフォントって?2種類のフォントの設定方法を丁寧に解説でまとめておりますので、詳しく知りたい方は是非ご確認ください。

例えば下準備コードのself.scale = tk.Scale(frame)箇所を、以下のように変更すると、

1# 別解法 ##########################
2# self.scale = tk.Scale(frame)
3# self.scale.config(font=("", 20, "underline")) or self.scale.configure(font=("", 20, "underline"))
4##################################
5# fontについて : https://kuroro.blog/python/RZNjLl36upkumxwkTRWl/
6self.scale = tk.Scale(frame, font=("", 20, "underline"))

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

cursor

cursor optionを利用すると、scale Widget内へマウスカーソルを移動すると矢印の見た目を変化できます。

見た目のバリエーションについてはこちらのサイトにまとまっていますので、ご確認ください。

例えば下準備コードのself.scale = tk.Scale(frame)箇所を、以下のように変更して、

1# 別解法 ##########################
2# self.scale = tk.Scale(frame)
3# self.scale.config(cursor="clock") or self.scale.configure(cursor="clock")
4##################################
5self.scale = tk.Scale(frame, cursor="clock")

scale Widget内へマウスカーソルを移動すると、矢印の見た目が変更します。

command

command optionを利用すると、つまみを動かした際に実行する関数を設定できます。

具体的につまみを画像を通して説明すると、

青色で囲まれる箇所をつまみと呼びます。

例えば下準備コードのself.scale = tk.Scale(frame)箇所を、以下のように変更して、

1# 別解法 ##########################
2# self.scale = tk.Scale(frame)
3# self.scale.config(command=self.helloWorld) or self.scale.configure(command=self.helloWorld)
4##################################
5self.scale = tk.Scale(frame, command=self.helloWorld)

つまみを動かすと、以下の画像のようにself.helloWorld関数が実行されて'hello world'が表示されます。

width

width optionを利用すると、scale Widgetの幅を設定できます。

例えば下準備コードのself.scale = tk.Scale(frame)箇所を、以下のように変更すると、

1# 別解法 ##########################
2# self.scale = tk.Scale(frame)
3# self.scale.config(width=50) or self.scale.configure(width=50)
4##################################
5# width : scale Widgetの幅を設定。デフォルトは15。
6self.scale = tk.Scale(frame, width=50)

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

length

length optionを利用すると、scale Widgetの高さを設定できます。

例えば下準備コードのself.scale = tk.Scale(frame)箇所を、以下のように変更すると、

1# 別解法 ##########################
2# self.scale = tk.Scale(frame)
3# self.scale.config(length=50) or self.scale.configure(length=50)
4##################################
5# length : scale Widgetの高さを設定。デフォルトは100。
6self.scale = tk.Scale(frame, length=50)

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

relief

relief optionを利用すると、scale Widgetの枠のデザインを設定できます。

指定方法としては、

  • tk.RAISED
  • tk.SUNKEN
  • tk.FLAT
  • tk.RIDGE
  • tk.GROOVE
  • tk.SOLID

の6種類があります。

例えば下準備コードを以下のように変更すると、

1def __init__(self, master=None):
2    ...
3    frame.pack()
4+   reliefList = [tk.RAISED, tk.SUNKEN, tk.FLAT, tk.RIDGE, tk.GROOVE, tk.SOLID]
5+   for relief in reliefList:
6-   self.scale = tk.Scale(frame)
7+       self.scale = tk.Scale(frame, length=50, relief=relief, bd=10)
8-   self.scale.pack()
9+       self.scale.pack()

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

from_

from_ opitonを利用すると、scale Widgetの値に下限を設けます。

例えば下準備コードのself.scale = tk.Scale(frame)箇所を、以下のように変更すると、

1# from_ : scale Widgetの値に下限を設ける。デフォルトは0。fromはPythonの予約語なので、fromの後に_(アンダーバー)を付加する
2# 予約語とは? : https://ja.wikipedia.org/wiki/%E4%BA%88%E7%B4%84%E8%AA%9E#:~:text=%E4%BA%88%E7%B4%84%E8%AA%9E%EF%BC%88%E3%82%88%E3%82%84%E3%81%8F%E3%81%94,%E3%80%81%E5%AD%97%E5%8F%A5%E3%81%AA%E3%81%A9%EF%BC%89%E3%81%AE%E3%81%93%E3%81%A8%E3%80%82
3self.scale = tk.Scale(frame, from_=20)

以下の画像のように'20'より小さい値を選択できなくなります。

to

to opitonを利用すると、scale Widgetの値に上限を設けます。

例えば下準備コードのself.scale = tk.Scale(frame)箇所を、以下のように変更すると、

1# 別解法 ##########################
2# self.scale = tk.Scale(frame)
3# self.scale.config(to=50) or self.scale.configure(to=50)
4##################################
5# to : scale Widgetの値に上限を設ける。デフォルトは100。
6self.scale = tk.Scale(frame, to=50)

以下の画像のように'50'より大きい値を選択できなくなります。

highlightcolor, highlightbackground, highlightthickness

highlightcolor option, highlightbackground option, highlightthickness optionを利用すると、それぞれscaleへフォーカスがあてられた時の囲い線の色, scaleへフォーカスが外れた時の囲い線の色, 囲い線の太さを設定します。

例えば下準備コードのself.scale = tk.Scale(frame)箇所を、以下のように変更すると、

1# 別解法 ##########################
2# self.scale = tk.Scale(frame)
3# self.scale.config(highlightbackground='red', highlightthickness=20) or self.scale.configure(highlightbackground='red', highlightthickness=20)
4##################################
5# 色について : https://kuroro.blog/python/YcZ6Yh4PswqUzaQXwnG2/
6self.scale = tk.Scale(frame, highlightbackground='red', highlightthickness=20)

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

また下準備コードのself.scale = tk.Scale(frame)箇所を、以下のように変更すると、

1# 色について : https://kuroro.blog/python/YcZ6Yh4PswqUzaQXwnG2/
2self.scale = tk.Scale(frame, highlightcolor='green', highlightthickness=20)
3# scale Widgetへfocusを与える。
4self.scale.focus()

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

activebackground

activebackground optionを利用すると、つまみの上へマウスカーソルを移動した場合に、つまみの背景色を変更できます。

例えば下準備コードのself.scale = tk.Scale(frame)箇所を、以下のように変更すると、

1# 別解法 ##########################
2# self.scale = tk.Scale(frame)
3# self.scale.config(activebackground='red') or self.scale.configure(activebackground='red')
4##################################
5# 色について : https://kuroro.blog/python/YcZ6Yh4PswqUzaQXwnG2/
6self.scale = tk.Scale(frame, activebackground='red')

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

sliderrelief

sliderrelief optionを利用すると、つまみのデザインを設定できます。

指定方法としては、

  • tk.RAISED
  • tk.SUNKEN
  • tk.FLAT
  • tk.RIDGE
  • tk.GROOVE
  • tk.SOLID

の6種類があります。

例えば下準備コードを以下のように変更すると、

1def __init__(self, master=None):
2    ...
3    frame.pack()
4+   reliefList = [tk.RAISED, tk.SUNKEN, tk.FLAT, tk.RIDGE, tk.GROOVE, tk.SOLID]
5+   for relief in reliefList:
6-   self.scale = tk.Scale(frame)
7+       self.scale = tk.Scale(frame, length=50, sliderrelief=relief, bd=10)
8-   self.scale.pack()
9+       self.scale.pack()

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

state

state optionを利用すると、scale Widgetの状態を設定できます。

指定できる値としては、

  • normal, active : つまみを動かせて、scale Widgetの値を更新可能
  • disabled : つまみを動かせない

があります。

例えば下準備コードのself.scale = tk.Scale(frame)箇所を、以下のように変更すると、

1# 別解法 ##########################
2# self.scale = tk.Scale(frame)
3# self.scale.config(state='disabled') or self.scale.configure(state='disabled')
4##################################
5self.scale = tk.Scale(frame, state='disabled')

以下の画像のようにscale Widgetのつまみを動かせなくなります。

showvalue

showvalue optionを利用すると、scale Widgetの現在の値を表示すべきか設定できます。

True(デフォルト)の場合、scale Widgetの現在の値を表示する、Falseの場合、scale Widgetの現在の値を表示しません。

例えば下準備コードのself.scale = tk.Scale(frame)箇所を、以下のように変更すると、

1# 別解法 ##########################
2# self.scale = tk.Scale(frame)
3# self.scale.config(showvalue=False) or self.scale.configure(showvalue=False)
4##################################
5self.scale = tk.Scale(frame, showvalue=False)

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

label

label optionを利用すると、scale Widgetへtitleを設定できます。

例えば下準備コードのself.scale = tk.Scale(frame)箇所を、以下のように変更すると、

1# 別解法 ##########################
2# self.scale = tk.Scale(frame)
3# self.scale.config(label='title') or self.scale.configure(label='title')
4##################################
5self.scale = tk.Scale(frame, label='title')

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

sliderlength

sliderlength optionを利用すると、つまみの高さを設定できます。

例えば下準備コードのself.scale = tk.Scale(frame)箇所を、以下のように変更すると、

1# 別解法 ##########################
2# self.scale = tk.Scale(frame)
3# self.scale.config(sliderlength=70) or self.scale.configure(sliderlength=70)
4##################################
5self.scale = tk.Scale(frame, sliderlength=70)

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

resolution

resolution optionを利用すると、scale Widgetの値更新の大きさを設定できます。

例えば下準備コードのself.scale = tk.Scale(frame)箇所を、以下のように変更すると、

1# 別解法 ##########################
2# self.scale = tk.Scale(frame)
3# self.scale.config(resolution=10) or self.scale.configure(resolution=10)
4##################################
5# resolution : scale Widgetの値更新の大きさを設定。デフォルトは1。
6self.scale = tk.Scale(frame, resolution=10)

以下の画像のようにscale Widgetの値更新を10ずつ行います。

troughcolor

troughcolor optionを利用すると、つまみの通る背景色を設定できます。

例えば下準備コードのself.scale = tk.Scale(frame)箇所を、以下のように変更すると、

1# 別解法 ##########################
2# self.scale = tk.Scale(frame)
3# self.scale.config(troughcolor='red') or self.scale.configure(troughcolor='red')
4##################################
5self.scale = tk.Scale(frame, troughcolor='red')

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

tickinterval

tickinterval optionを利用すると、from_の値(デフォルトは0)から指定する値の間隔ごとに、値の目印を設定できます。

例えば下準備コードのself.scale = tk.Scale(frame)箇所を、以下のように変更すると、

1# 別解法 ##########################
2# self.scale = tk.Scale(frame)
3# self.scale.config(tickinterval=20) or self.scale.configure(tickinterval=20)
4##################################
5self.scale = tk.Scale(frame, tickinterval=20)

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

orient

orient optionを利用すると、scale Widgetの表示方向を設定できます。

指定方法としては、tk.HORIZONTAL(水平方向), tk.VERTICAL(垂直方向、デフォルト)があります。

例えば下準備コードのself.scale = tk.Scale(frame)箇所を、以下のように変更すると、

1# 別解法 ##########################
2# self.scale = tk.Scale(frame)
3# self.scale.config(orient=tk.HORIZONTAL) or self.scale.configure(orient=tk.HORIZONTAL)
4##################################
5self.scale = tk.Scale(frame, orient=tk.HORIZONTAL)

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

scaleで活用される関数【2種】

scaleで活用される関数として、

  • get
  • set

の2種類が存在します。順に見ていきましょう。

get

get関数を利用すると、現在のscale Widgetの値を取得できます。

1# 戻り値 : 現在のscale Widgetの値
2.get()

で定義されます。戻り値として現在のscale Widgetの値を取得できます。

例えば下準備コードのself.scale.pack()の下へ、以下のコードを追加すると

1  self.scale.pack()
2+ print(self.scale.get())

以下の画像のように0を取得します。

set

set関数を利用すると、現在のscale Widgetの値を更新できます。

1# 第一引数 : 値
2.set('値')

で定義されます。戻り値はありません。

例えば下準備コードのself.scale.pack()の下へ、以下のコードを追加すると

1  self.scale.pack()
2+ self.scale.set(80)

以下の画像のように値を80へ更新します。

ttk.Scale()を利用してみる

ttk.Scale()とは、テーマ(名前)を指定して、外観を変更するscale Widgetを意味します。

scale Widgetの拡張と考えるとよいでしょう。tkinterのversion 8.5で導入されました。

ttk.Scale()を利用するためには、tkinterからttkをimportする必要があります。

1# tkinterからttkをimportする
2from tkinter import ttk

tk.Scale()との違いとしては、

  • 使用できるoptionに違いがある
  • テーマ(名前)を利用して、scale widgetの外観を変更する

があります。順に見ていきましょう。

使用できるoptionに違いがある

こちらはコードの結果を確認するとわかります。

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

1import tkinter as tk
2from tkinter import ttk
3
4class Application(tk.Frame):
5
6    def __init__(self, master=None):
7        # Windowの初期設定を行う。
8        super().__init__(master)
9
10        # Windowの画面サイズを設定する。
11        # geometryについて : https://kuroro.blog/python/rozH3S2CYE0a0nB3s2QL/
12        self.master.geometry("300x200")
13
14        # Windowを親要素として、frame Widget(Frame)を作成する。
15        # Frameについて : https://kuroro.blog/python/P20XOidA5nh583fYRvxf/
16        frame = tk.Frame(self.master)
17
18        # Windowを親要素とした場合に、frame Widget(Frame)をどのように配置するのか?
19        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
20        frame.pack()
21
22        # frame Widget(Frame)を親要素として、ttk scale Widgetを作成する。
23        ttkScale = ttk.Scale(frame)
24        print('ttk.Scale option : ')
25        print(ttkScale.keys())
26
27        # frame Widget(Frame)を親要素として、scale Widgetを作成する。
28        scale = tk.Scale(frame)
29        print('tk.Scale option : ')
30        print(scale.keys())
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    # Windowをループさせて、継続的にWindow表示させる。
39    # mainloopについて : https://kuroro.blog/python/DmJdUb50oAhmBteRa4fi/
40    app.mainloop()

以下の画像のように、optionの種類に差分が発生します。

テーマ(名前)を利用して、scale Widgetの外観を変更

ttk.Scale()では、テーマ(名前)を指定することで、scale Widgetの外観を変更できます。

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

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

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

また現在利用中のテーマ(名前)を確認する場合は、

1from tkinter import ttk
2
3style = ttk.Style()
4# 現在利用中のテーマ(名前)を確認
5currentTheme = style.theme_use() 
6print(currentTheme)

利用できるテーマ(名前)の一覧を確認する場合は、

1from tkinter import ttk
2
3style = ttk.Style() 
4# テーマ(名前)の一覧を確認
5allTheme = style.theme_names() 
6print(allTheme)

テーマ(名前)の指定を行う場合は、

1from tkinter import ttk
2
3style = ttk.Style()
4# テーマ(名前)の指定を行う。
5style.theme_use('テーマ(名前)') 

をご利用ください。

まとめ

  • Tkinterは、Window, Frame, Widgetで構成される。
  • Tkinterで使われるscaleとは、Widgetの一種で、ファイルのダウンロード状況やタスクの進捗などを視覚化するものを意味します。
  • 別名scale Widget, プログレスバーと呼ばれます。

参考文献