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

【Python】TkinterのOptionMenuウィジェットでメニューの背景色を変更する方法

OptionMenuウィジェットとは

アプリ開発では、ドロップダウンリスト形式で複数の選択肢を表示するメニューが必要になる場面があります。こうした機能を実現するために、TkinterにはOptionMenuウィジェットが用意されています。OptionMenuウィジェットを使えば、選択肢となる項目リストを簡単に追加でき、ユーザーに直感的な操作性を提供できます。

また、背景色・文字色・幅・高さなどのプロパティを設定することで、ウィジェットの見た目や動作を自由にカスタマイズすることも可能です。

メニュー部分の背景色を変更するポイント

通常のconfig()メソッドだけでは、クリック時に表示されるメニュー本体の色は変わりません。ここでは、option['menu'].config(bg="...")のように、ウィジェット内部のメニューオブジェクトに対して直接設定を行うのがポイントです。

サンプルコード

# 必要なライブラリをインポート
from tkinter import *
from PIL import Image, ImageTk

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

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

# ラベルを追加
Label(win, text="Select a Day from the Menu", font=('Aerial 13')).pack(pady=10)

# 選択内容を保存するための変数を作成
var = StringVar()

# OptionMenuウィジェットを作成し、選択肢を追加
option = OptionMenu(win, var, "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
option.config(bg="gray81", fg="white")
option['menu'].config(bg="green3")
option.pack(padx=20, pady=30)

win.mainloop()

コードの解説

option.config(bg="gray81", fg="white")では、閉じた状態のボタン部分の背景色と文字色を設定しています。一方、option['menu'].config(bg="green3")では、クリックしたときに展開されるメニュー部分の背景色を緑系の色に変更しています。このように、menu属性経由でアクセスすることで、ドロップダウン表示時のデザインも細かくコントロールできます。

実行結果

上記のコードを実行すると、曜日(Sunday〜Saturday)が選択肢として並んだOptionMenuウィジェットが表示されます。メニューを開くと、指定した背景色と文字色が反映されていることが確認できます。配色はconfig()メソッド内の値を変更するだけで、お好みのデザインに調整可能です。

【Python】TkinterのOptionMenuウィジェットでメニューの背景色を変更する方法

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

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

  2. 【iOS】メモアプリの背景色を変更する方法|ライト/ダーク切り替えと罫線・グリッド設定も解説

    iOSの標準「メモ」アプリを使っていると、背景が端末全体の表示設定に自動的に連動してしまう点に不便さを感じることがあります。ライトモードが有効なときは明るい背景に、ダークモードのときは暗い背景になり、個別にコントロールできないように見えます。しかし実は、iOSではメモごとの背景色を簡単に変更できます。この記事では、特定のメモだけ背景を変える方法、すべてのメモに一括で適用する方法、さらに罫線やグリッド背景を追加するカスタマイズ術まで、わかりやすく解説します。注意:メモアプリで異なる背景を設定するには、端末がiOS 13 / iPadOS 13以降である必要があります。古いバージョンをお使いの場合