Python
 Computer >> コンピューター >  >> プログラミング >> Python

【Python】ttk.Notebook(tkinter)でタブヘッダーの色を変更する方法

タブは、多目的GUIアプリケーションにおいて非常に便利な機能です。アプリケーション内の複数のタスクや処理をタブ形式で分離できるため、ユーザーは複数の作業を同時に効率的に進めることができます。Pythonの標準GUIライブラリであるTkinterにはNotebookウィジェットが用意されており、これを使えば自作アプリケーションに簡単にタブ機能を追加できます。

ただし、タブのプロパティやスタイルを細かく設定したい場合は、通常のTkinterウィジェットではなくttkテーマウィジェットを使用する必要があります。ttkテーマウィジェットは、アプリケーション内のあらゆるウィジェットに統一感のあるスタイルを適用するための仕組みです。タブの背景色を変更したい場合は、ttkの「default」テーマを選択し、「TNotebook.Tab」をスタイル名として指定してconfigureメソッドで設定します。

サンプルコード

以下の例では、タブヘッダーの背景色と選択時の色を緑(green3)に変更しています。

# 必要なライブラリをインポート
from tkinter import *
from tkinter import ttk

# tkinterフレームのインスタンスを作成
win = Tk()

# ウィンドウサイズを設定
win.geometry("700x350")

# ttkスタイルのインスタンスを作成
s = ttk.Style()
s.theme_use('default')
s.configure('TNotebook.Tab', background="green3")
s.map("TNotebook", background= [("selected", "green3")])

# Notebookウィジェットを作成
nb = ttk.Notebook(win)

# 新しいタブ用のフレームを追加
f1 = ttk.Frame(nb, width=400, height=180)

# タブ名を設定して追加
nb.add(f1, text='Tkinter-1')
f2 = ttk.Frame(nb, width=400, height=180)
nb.add(f2, text="Tkinter-2")

nb.pack(expand=True, fill=BOTH, padx=5, pady=5)
win.mainloop()

実行結果

上記コードを実行すると、カスタマイズされた緑色のタブがウィンドウに表示されます。コード内の設定箇所で色名を変更すれば、タブの色は自由に調整可能です。たとえば「green3」を「lightblue」や「#FF6666」などの色名・カラーコードに置き換えるだけで、好みのデザインに仕上げられます。

【Python】ttk.Notebook(tkinter)でタブヘッダーの色を変更する方法

  1. Tkinterでテキストウィジェット内の特定の単語の色を変更する方法

    Tkinterのテキストウィジェット(Textウィジェット)は、複数行のテキスト入力を作成・表示するためのウィジェットです。テキストウィジェットを柔軟に設定するための、さまざまな関数やメソッドが標準で用意されています。 テキストウィジェット内の特定の単語だけ色を変えたい場合は、tag_add(タグ名, 範囲) メソッドを使って、書式設定したい単語の範囲を選択します。範囲を指定した後、tag_config(プロパティ) メソッドを使用することで、その部分に対して文字色・背景色などのスタイルを自由に適用できます。 実装例 以下の例では、テキストウィジェット内の特定の単語に対して色を設定する方法を紹

  2. Tkinterウィジェットの境界線の色を設定・変更する方法をわかりやすく解説

    Tkinterアプリケーションを開発していると、ウィジェットの境界線(ボーダー)の色を変更したくなることがあります。実は、highlightbackground や highlightcolor といったプロパティを設定するだけで、簡単に境界線の色をカスタマイズできます。これらのプロパティは、ウィジェットにフォーカスがあるかどうかに応じて使い分けられます。highlightbackground はフォーカスがないときの境界線の色、highlightcolor はフォーカスがあるときの境界線の色を指定します。また、highlightthickness を設定すると、境界線の太さも調整可能です。サ