【完全独学Python】Tkinterのttkはこれだけ覚えて!初心者向けに徹底解説!

デスクトップアプリ

こんにちは!ゆーや(@yuyamanm118712)です。

こちらのページでは完全独学でWebプログラマとなった私が

デスクトップアプリには欠かせないttkの操作」に関して必要な情報をまとめています。

最後までじっくりと読んで、一緒に学習にしていきましょう。

なお、ご指摘・ご質問はTwitter(@yuyamanm118712)のDMまでよろしくお願いします。

この記事を読むと

  • ttkの基本操作が分かる!
  • ウィジェットの種類が分かる!
  • ttkとtkinterの違いがわかる!

ttkとは

ttkは、Tkinterに含まれる拡張モジュールで、“themed tkinter”の略です!

ttkを使うと、標準のtkウィジェットよりも見た目が良く、クロスプラットフォームで一貫したスタイルを持つウィジェットを作成できます!

ttkの基本操作

ttkのインポートとサンプルコード

import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.title("ttk Themed Widgets")
root.geometry("300x200")

label = ttk.Label(root, text="Hello, ttk!")
label.pack(pady=10)

button = ttk.Button(root, text="Click Me")
button.pack(pady=10)

entry = ttk.Entry(root)
entry.pack(pady=10)

root.mainloop()
ゆーや
ゆーや

基本的にはtkinterと同様に使えるよ!
tkinterの使い方は以下の記事を読んでみてね!

tkkのウィジェット(部品)

ウィジェットの一覧

ttkウィジェット概要tkinterで使用可能か
ttk.Button ボタンウィジェット。
ttk.Checkbuttonチェックボタンウィジェット。
ttk.Comboboxドロップダウンリストを提供。×
ttk.Entryテキスト入力フィールド。
ttk.Frameコンテナフレーム。
ttk.Labelテキストや画像表示用ラベル。
ttk.Labelframeラベル付きフレーム。×
ttk.Menubuttonメニューボタン。
ttk.Panedwindowスプリットウィンドウ。×
ttk.Progressbar進捗バー。×
ttk.Radiobuttonラジオボタン。
ttk.Scaleスライダー。
ttk.Scrollbarスクロールバー。
ttk.Separator区切り線。×
ttk.Sizegripウィンドウサイズ変更グリップ。×
ttk.Spinboxスピンボックス。
ttk.Treeview階層データ表示用ツリービュー。×
ttk.Notebookタブ付きウィジェット。×

ttk.Button

ゆーや
ゆーや

tkinterと使い方は同じ!

以下の記事を参考にしてね!

ttk.Checkbutton

ゆーや
ゆーや

tkinterと使い方は同じ!

以下の記事を参考にしてね!

ttk.Combobox

import tkinter as tk
from tkinter import ttk

def on_combobox_select(event):
    label.config(text=f"Selected: {combo.get()}")

root = tk.Tk()
root.title("ttk.Combobox Example")
root.geometry("300x200")

label = ttk.Label(root, text="Select an option:")
label.pack(pady=10)

combo = ttk.Combobox(root, values=["Option 1", "Option 2", "Option 3"])
combo.pack(pady=10)
combo.bind("<<ComboboxSelected>>", on_combobox_select)

root.mainloop()
ゆーや
ゆーや

ttkならこんなに簡単にプルダウンが作れる!

詳しくは以下の記事を見てね!

ttk.Entry

ゆーや
ゆーや

tkinterと使い方は同じ!

以下の記事を参考にしてね!

ttk.Frame

ゆーや
ゆーや

tkinterと使い方は同じ!

以下の記事を参考にしてね!

ttk.Label

ゆーや
ゆーや

tkinterと使い方は同じ!

以下の記事を参考にしてね!

ttk.Labelframe

import tkinter as tk
from tkinter import ttk

# メインウィンドウの作成
root = tk.Tk()
root.title("Labelframe-完全独学Python")
root.geometry("400x200")

# Labelframeの作成
labelframe = ttk.Labelframe(root, text="完全独学Python", padding=(10, 5))
labelframe.pack(padx=10, pady=10, fill="both", expand=True)

# ラベルとエントリーの作成
label = ttk.Label(labelframe, text="Labelframeの中のウィジェットです!")
label.grid(row=0, column=0, padx=5, pady=5, sticky="e")

# メインループの実行
root.mainloop()
ゆーや
ゆーや

tkinterと使い方は同じ!

以下の記事を参考にしてね!

ttk.Menubutton

ゆーや
ゆーや

tkinterと使い方は同じ!

以下の記事を参考にしてね!

ttk.Notebook

import tkinter as tk
from tkinter import ttk

# メインウィンドウの作成
root = tk.Tk()
root.title("Notebook-完全独学Python")
root.geometry("500x300")

# Notebookウィジェットの作成
notebook = ttk.Notebook(root)

# タブ1の作成
frame1 = ttk.Frame(notebook, width=500, height=300)
frame1.pack(fill='both', expand=True)
notebook.add(frame1, text='Tab 1')

# タブ2の作成
frame2 = ttk.Frame(notebook, width=500, height=300)
frame2.pack(fill='both', expand=True)
notebook.add(frame2, text='Tab 2')

# タブ3の作成
frame3 = ttk.Frame(notebook, width=500, height=300)
frame3.pack(fill='both', expand=True)
notebook.add(frame3, text='Tab 3')

# Notebookの表示
notebook.pack(expand=True, fill='both')

# タブ1にウィジェットを追加
label1 = ttk.Label(frame1, text="これはタブ1です", padding=20)
label1.pack()

# タブ2にウィジェットを追加
label2 = ttk.Label(frame2, text="これはタブ2です", padding=20)
label2.pack()

# タブ3にウィジェットを追加
label3 = ttk.Label(frame3, text="これはタブ3です", padding=20)
label3.pack()

# メインループの実行
root.mainloop()
ゆーや
ゆーや

ttkならこんなに簡単にタブが作れる!
詳しくは以下の記事を見てね!

ttk.Panedwindow

ゆーや
ゆーや

tkinterと使い方は同じ!

以下の記事を参考にしてね!

ttk.Progressbar

import tkinter as tk
from tkinter import ttk
import time

def start_progress():
    progress.start()

    # 進捗バーが一定時間進行します
    for i in range(101):
        progress['value'] = i
        root.update_idletasks()
        time.sleep(0.05)

    # 進捗バーを停止します
    progress.stop()

# メインウィンドウの作成
root = tk.Tk()
root.title("Progressbar-完全独学Python")
root.geometry("300x100")

# Progressbarの作成
progress = ttk.Progressbar(root, orient="horizontal", length=200, mode="determinate")
progress.pack(pady=10)

# Startボタンの作成
start_button = ttk.Button(root, text="Start Progress", command=start_progress)
start_button.pack()

# メインループの実行
root.mainloop()
ゆーや
ゆーや

ボタンを押すと進捗バーが進みだすよ!

詳しくは以下の記事を見てね!

ttk.Radiobutton

ゆーや
ゆーや

tkinterと使い方は同じ!

以下の記事を参考にしてね!

ttk.Scale

ゆーや
ゆーや

tkinterと使い方は同じ!

以下の記事を参考にしてね!

ttk.Scrollbar

ゆーや
ゆーや

tkinterと使い方は同じ!

以下の記事を参考にしてね!

ttk.Separator

import tkinter as tk
from tkinter import ttk

# メインウィンドウの作成
root = tk.Tk()
root.title("Separator-完全独学Python")
root.geometry("300x200")

# 上部のラベルを作成
label1 = ttk.Label(root, text="上部のラベル", padding=10)
label1.pack(pady=10)

# セパレータを作成(水平)
separator = ttk.Separator(root, orient='horizontal')
separator.pack(fill='x', pady=10)

# 下部のラベルを作成
label2 = ttk.Label(root, text="下部のラベル", padding=10)
label2.pack(pady=10)

# セパレータを作成(垂直)
frame = ttk.Frame(root)
frame.pack(pady=10, expand=True, fill='both')

label3 = ttk.Label(frame, text="左のラベル", padding=10)
label3.pack(side='left', padx=10)

separator2 = ttk.Separator(frame, orient='vertical')
separator2.pack(side='left', fill='y', padx=10)

label4 = ttk.Label(frame, text="右のラベル", padding=10)
label4.pack(side='left', padx=10)

# メインループの実行
root.mainloop()
ゆーや
ゆーや

これでttkでウィンドウを分割することができる!
詳しくは以下の記事を見てね!

※記事執筆中…少々お待ちください!

ttk.Sizegrip

import tkinter as tk
from tkinter import ttk

# メインウィンドウの作成
root = tk.Tk()
root.title("Sizegrip-完全独学Python")
root.geometry("300x200")

# ラベルを作成
label = ttk.Label(root, text="右下隅のサイズ変更グリップを試してみてください。", padding=20)
label.pack(expand=True)

# Sizegripの作成
sizegrip = ttk.Sizegrip(root)
sizegrip.pack(side="right", anchor="se")

# メインループの実行
root.mainloop()
ゆーや
ゆーや

右下にマークが出ているね!

これでウィンドウのサイズの変更

ttk.Spinbox

ゆーや
ゆーや

tkinterと使い方は同じ!

以下の記事を参考にしてね!

ttk.Treeview

ゆーや
ゆーや

tkinterと使い方は同じ!

以下の記事を参考にしてね!

まとめ

本記事では、ttk使い方とそのウィジェットについて紹介しました!

数が多いので、すべて覚える必要はありません!

存在に触れておけば、GUIアプリを作る時に

「そういえば、あんなウィジェットあったな!」

みたいな形で思い出すものです!

ぜひ、挑戦してみてね!

コメント

タイトルとURLをコピーしました