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

クリック操作でTkinterの長方形の色を変更する方法

TkinterのCanvas(キャンバス)ウィジェットは、図形やロゴ、円弧、アニメーションオブジェクトなど、動的なGUIインターフェースを構築できる非常に汎用性の高いウィジェットです。create_rectangle(top, left, bottom, right, **options)コンストラクタを使用すると、キャンバス上に自由に長方形を描画できます。また、Canvas上のすべてのアイテムは、サイズ・塗りつぶし色・枠線(outline)などのプロパティを柔軟に設定可能です。

本記事では、ボタンのクリックイベントをきっかけに、描画済みの長方形の色を変更する方法を解説します。ポイントは、itemconfig()メソッドを使ってfillプロパティを書き換えるコールバック関数を定義することです。

実装例:ボタンクリックで長方形の色を青に変更する

以下のコードでは、赤い長方形を描画し、「Change Color」ボタンを押すと青色に変化する仕組みを実装しています。

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

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

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

# 長方形の色を変更する関数を定義
def change_color(*args):
    canvas.itemconfig(shape, fill='blue')

# フレーム内にキャンバスを配置
canvas = Canvas(win, width=500, height=250)
canvas.pack()

# キャンバス内に長方形を描画
shape = canvas.create_rectangle(500, 100, 50, 50, fill='red')

# 色を変更するためのボタンを追加
button = Button(win, text="Change Color", font=('Helvectica 11'),
command = lambda: change_color(canvas))
button.place(relx=.5, rely=.5, anchor=CENTER)
win.mainloop()

実行結果

上記のコードを実行すると、赤い長方形と「Change Color」ボタンが配置されたウィンドウが表示されます。

クリック操作でTkinterの長方形の色を変更する方法

ボタンをクリックすると、コールバック関数change_color()が呼び出され、itemconfig()によって長方形の塗りつぶし色が青色に切り替わります。

クリック操作でTkinterの長方形の色を変更する方法

解説のポイント

  • itemconfig()メソッド:Canvas上の既存アイテムの属性(fill、outline、widthなど)を後から変更できる便利なメソッドです。
  • コールバック関数:Buttonのcommandオプションにlambda式で渡すことで、クリック時に関数を実行しています。
  • 応用:色を引数として受け取るようにすれば、複数の色への切り替えやランダムな色変更にも簡単に拡張できます。
  1. Tkinterで楕円の輪郭線を削除する方法

    Tkinterのキャンバス(Canvas)ウィジェットを使うと、2D・3Dアプリケーション向けの図形描画はもちろん、画像の作成やアニメーションの描画など、さまざまなグラフィック表現が可能になります。ここでは、キャンバス上に楕円を美しく描く方法を紹介します。図形を見栄えよくするための機能はいくつかありますが、そのひとつとして「輪郭線の制御」があります。もし楕円などの図形からアウトライン(外枠の線)を取り除きたい場合は、create_oval() メソッドの outline プロパティに空の値(空文字列)を指定するだけで実現できます。サンプルコード# tkinterライブラリをインポート from

  2. Tkinterでマウスカーソルを変更する方法【cursorプロパティ活用ガイド】

    Tkinterは、Pythonに標準搭載されているGUIライブラリで、さまざまな機能的なデスクトップアプリケーションを開発するために広く利用されています。豊富な関数やメソッドが用意されており、アプリケーション開発時に高い拡張性と多彩な機能を実現できます。 本記事では、Tkinterのcursor(カーソル)プロパティを使って、ボタン上にマウスを乗せたときのカーソル形状を変更する方法を解説します。Tkinterのウィジェットには多数のカーソルマップが用意されており、エンドユーザーにさまざまな視覚的なフィードバックを提供できます。 Tkinterで利用できる主なカーソル一覧 cursorプロパテ