
本記事では、tkinterで作成したウィンドウの背景を指定・変更する方法を3パターン紹介していきます!
今回紹介するのは下記の3パターンになります!
それぞれ異なる使い方になりますので是非参考にしていただければと思います!
- 転職のためのスキルアップとして効率的に学びたい
- 副業としてプログラミングができるようになりたい
- 独学での勉強に限界を感じている
これらに該当する方はプログラミングスクールという選択肢があります。
是非参考にしてみてください。
未経験でも安心!
おすすめなプログラミングスクールがあります!
config()メソッド
config()メソッドの使い方
まずはconfig()メソッドについて紹介します。
config()メソッドは下記のように使用します。
root.config(bg="color code")
config()メソッドを使ってみる
実際に使用したプログラムは下記のようになります!
import tkinter as tk
root=tk.Tk()
root.geometry("400x200")
root.title("Python")
#ラベル作成
label1 = tk.Label(root,text="setPalette")
label1.pack()
#エントリーボックス作成
entry1 = tk.Entry(root)
entry1.pack()
#ボタン作成
button1 = tk.Button(root,text="ボタン1")
button1.pack()
#背景色を指定
root.configure(bg="orange")
root.mainloop()

背景の色がこのように変わります!
ただし、setPalette()メソッドではボタンやラベルなどその他のウィジェットの色は変わらないみたいですね。
tk_setPaletteメソッド
tk_setPaletteの使い方
tk_setPalette()メソッドもconfig()メソッドと同様に、ウィンドウの背景色を変更できます。
root.tk_setPalette(background="color code", **kw)
ここで、第二引数である**kwは任意のオプションを指定することで様々な機能を持たせることができます。
スポンサーリンク
スポンサーリンク
tk_setPalette()を使ってみる
■ option無し
まずは、オプション指定無しでbackgroundのみ指定してみます。
import tkinter as tk
root=tk.Tk()
root.geometry("400x200")
root.title("Python")
#ラベル作成
label1 = tk.Label(root,text="setPalette")
label1.pack()
#エントリーボックス作成
entry1 = tk.Entry(root)
entry1.pack()
#ボタン作成
button1 = tk.Button(root,text="ボタン1")
button1.pack()
#背景色を変更
root.tk_setPalette(background="orange")
root.mainloop()

先ほど紹介したconfig()メソッドとは異なってウィジェット全体の色を変更することができました。いちいち全てのウィジェットの色を指定する必要がなくなります。
また、ウィジェットのオプションとして色を設定すると背景色を上書きできるみたいです。実際にEntryboxの背景を上書きしてみます。
#エントリーボックス作成
entry1 = tk.Entry(root,bg="lightgreen")

■ foregroundオプション
foregroundオプションは、ウィンドウ内の文字の色を変更させることができます。
root.tk_setPalette(background="orange",foreground="blue")

文字も先ほどと同様に色を上書きすることができます!
#ラベル作成
label1 = tk.Label(root,text="setPalette", fg="red")

■ activebackgroundオプション
activebackgroundオプションは、ウィンドウ内のウィジェットがアクティブになった際の背景色を指定することができます。実際に使ってみると以下のようになりました。
root.tk_setPalette(background="orange",activebackground="yellow")


ただしEntryボックスは、アクティブにしても色は変わらなかったです。
activeforegroundオプション
activeforegroundオプションは、ウィンドウ内のウィジェットがアクティブになった際のテキストの色を指定できます。
root.tk_setPalette(background="orange",activeforeground="blue")

insertbackgroundオプション
Entryboxなどのテキスト入力可能なウィジェットがアクティブになった際の「I」の色を変えることができます。
root.tk_setPalette(background="orange",insertbackground="red")

余談:tk_bisque()メソッド
最後に余談にはなりますが、setPalette()メソッドの他にもbisque()メソッドというものがあります。
このbisque()メソッドはウィンドウ全体の色をクリーム色に指定することができます。
import tkinter as tk
root=tk.Tk()
root.geometry("400x200")
root.title("Python")
#ラベル作成
label1 = tk.Label(root,text="setPalette")
label1.pack()
#エントリーボックス作成
entry1 = tk.Entry(root)
entry1.pack()
#ボタン作成
button1 = tk.Button(root,text="ボタン1")
button1.pack()
#背景色を指定
root.tk_bisque()
root.mainloop()

bisque()メソッドの色は、とても目に優しい色なので個人的にはお気に入りのメソッドです!
以上となります!
最後まで見ていただきありがとうございました。
Python学習に役立つ書籍も紹介していますので是非参考にしてみてください!
