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

【Tkinter入門】クリック時に長方形の色を変更する方法をわかりやすく解説

Canvasウィジェットは、Tkinterライブラリの中でも最も汎用性の高いウィジェットのひとつです。さまざまな種類・サイズの図形を作成したり、オブジェクトをアニメーションさせたり、グラフィックスを可視化したりと、幅広い用途に活用できます。

Tkinterでキャンバス上の特定のアイテムのプロパティを変更したい場合は、itemconfig(**options) メソッドを使用します。このメソッドでは、塗りつぶし色(fill)、輪郭色(outline)など、キャンバス上に定義されたアイテムの各種プロパティをオプションとして指定できます。

サンプルコード:ボタンクリックで長方形の色を変更する

以下の例では、ボタンをクリックすると長方形の塗りつぶし色が青から緑に変わるプログラムを作成します。

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

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

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

# アイテムの状態を変更する関数を定義
def change_color():
    canvas.itemconfig(rectangle, fill='green')

# Canvasウィジェットを定義
canvas = Canvas(win, width=500, height=240)
canvas.pack()

# キャンバス上に長方形を作成
rectangle = canvas.create_rectangle(100, 100, 400, 400, fill='blue')

# 色を変更するためのボタンを作成
ttk.Button(win, text="Change Color", command=change_color).pack()
win.mainloop()

実行結果

上記のコードを実行すると、ウィンドウの中央に青く塗りつぶされた長方形が表示されます。

【Tkinter入門】クリック時に長方形の色を変更する方法をわかりやすく解説

続いて、「Change Color」ボタンをクリックしてみましょう。ボタンのクリックをきっかけに change_color() 関数が呼び出され、itemconfig() メソッドによって長方形の塗りつぶし色が緑に変更されます。

【Tkinter入門】クリック時に長方形の色を変更する方法をわかりやすく解説

応用:長方形そのものをクリックして色を変更する

ボタンではなく、図形を直接クリックしたときに色を変えたい場合は、tag_bind() メソッドを使ってマウスイベントをアイテムに紐づけます。

# 長方形が左クリックされたときに色を変更する
def change_color(event):
    canvas.itemconfig(rectangle, fill='green')

canvas.tag_bind(rectangle, '<Button-1>', change_color)

このように <Button-1>(マウス左クリック)イベントをバインドすることで、キャンバス上の特定の図形に対してインタラクティブな操作を実装できます。

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

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

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

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