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

Tkinterでウィジェットの背景色を動的に変更する方法

Tkinterにおけるウィジェット設定の基本

Tkinterアプリケーションでウィジェットのプロパティを設定する際は、一般的に configure(**options) メソッドを使用します。このメソッドを利用することで、背景色やフォントなど、ウィジェットのさまざまな属性を柔軟にカスタマイズできます。

しかし、アプリによってはウィジェットやウィンドウの背景色を動的に変更したいケースもあります。そんなときは、あらかじめ色のリストを定義しておき、そのリストを順番に処理しながら色を切り替えていく方法が効果的です。

サンプルコード

#Import the required libraries
from tkinter import *
from random import shuffle
import time

#Create an instance of Tkinter frame
win = Tk()
win.geometry("700x250")

#Add fonts for all the widgets
win.option_add("*Font", "aerial")

# Define the backround color for all the widgets
def change_color():
    colors= ['#e9c46a','#e76f51','#264653','#2a9d8f','#e85d04','#a2d2ff','#06d6a0','#4d908e']
    while True:
        shuffle(colors)
        for i in range(0,len(colors)):
            win.config(background=colors[i])
            win.update()
            time.sleep(1)

#Display bunch of widgets
label=Label(win, text="Hello World", bg= 'white')
label.pack(pady= 40, padx= 30)

#Create a Button to change the background color of the widgets
btn=Button(win, text="Button", command= change_color)
btn.pack(pady= 10)
win.mainloop()

コードのポイント

  • colors リスト: カラーコードを8色分定義し、この中から順に背景色として適用します。
  • shuffle(colors): randomモジュールのshuffle関数で、毎回異なる順序になるよう色の並びをシャッフルします。
  • win.config(background=...): configureメソッドの省略形であるconfigを使って、ウィンドウ全体の背景色を変更します。
  • win.update(): 変更内容を即座に画面へ反映させるために呼び出します。
  • time.sleep(1): 1秒ごとに色が切り替わるよう、処理を一時停止します。

実行結果

上記のコードを実行すると、ラベルウィジェットとボタンが配置されたウィンドウが表示されます。

Tkinterでウィジェットの背景色を動的に変更する方法

ボタンをクリックすると change_color() 関数が呼び出され、ウィンドウの背景色が1秒ごとにランダムな順序で動的に変化していきます。

Tkinterでウィジェットの背景色を動的に変更する方法

  1. Python Tkinterでメッセージボックスの表示位置を変更する方法

    Tkinterを使ってダイアログボックスを作成したい場合、MessageBoxライブラリを利用すると、さまざまな種類のダイアログを手軽に生成できます。作成したダイアログボックスの位置を調整するには、Toplevelウィジェットを使用します。Toplevelは、現在のウィンドウを最前面に優先表示し、他の処理をバックグラウンドで維持する役割を持ちます。さらに、title(タイトル)、message(メッセージ)、details(詳細)といった機能も備えています。メッセージボックスウィジェットの表示位置を変更するには、geometryメソッドを使います。コード例# tkinterライブラリをインポー

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

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