Tkinterのキャンバスで線を破線から実線に動的に変更する方法
Canvasウィジェットは、Tkinterアプリケーションにおいてグラフィカルな描画を行うために最も広く利用されているウィジェットの一つです。Canvasウィジェット上に線を描画するには、組み込みメソッドであるcreate_line(x1, y1, x2, y2, **options)を使用します。
また、dashプロパティを指定することで、線を破線として表示することも可能です。線のスタイルを動的に変更したい場合は、itemconfig()メソッドを使用します。このメソッドでdashプロパティに空の値を渡すと、破線を実線に切り替えることができます。逆に、dash=(4, 2)のような値を設定すれば、実線から破線への変更も同様に行えます。
サンプルコード
実際にどのように動作するのか、具体的な例を見てみましょう。
# 必要なライブラリをインポート
from tkinter import *
from tkinter import ttk
# tkinterフレーム(ウィンドウ)のインスタンスを作成
win = Tk()
# ウィンドウのサイズを設定
win.geometry("700x350")
def update_line():
# dashプロパティに空の値を渡して実線に変更
canvas.itemconfig(line, dash=())
# キャンバスウィジェットを作成
canvas = Canvas(win, width=400, height=300)
canvas.pack()
# 破線を作成し、IDを変数に保存
line = canvas.create_line(300, 30, 300, 150, dash=(4, 2), width=5)
# 線のスタイルを変更するボタンを作成
ttk.Button(win, text="変更", command=update_line).pack(pady=10)
win.mainloop()
コードのポイント
create_line()の戻り値(アイテムID)を変数に保存しておくことで、後からその線を操作できます。canvas.itemconfig(line, dash=())のように、対象のアイテムIDと新しい属性値を指定します。- ボタンを配置する際は
.pack()を忘れずに呼び出しましょう。呼び出さないとボタンが画面に表示されません。
実行結果
上記のコードを実行すると、まずCanvasウィジェット内に幅5ピクセルの破線が表示されます。
「変更」ボタンをクリックすると、update_line()関数が呼び出され、破線が一本の実線へと即座に切り替わります。

-
Tkinterのttk.Entryウィジェットでフォントを変更する方法
アプリケーションでは、ユーザーに氏名、電話番号、メールアドレス、住所などの情報を入力してもらう場面が多くあります。Tkinterでは、Entryウィジェットを使うことで、このようなテキスト入力を簡単に処理できます。さらに、ttkパッケージを利用すると、Entryウィジェットにモダンなスタイルを適用することが可能です。Entryウィジェットのフォントの種類、文字サイズ、フォントスタイルなどのプロパティを変更したい場合は、font(フォントファミリー サイズ スタイル)属性を使用します。このfontプロパティは、Entryウィジェットのコンストラクタ内で直接指定できます。コード例# tkinter
-
Tkinterでフレームの背景色を変更する方法
Tkinterでフレームの背景色や前景色を変更したい場合は、Frame関数のbg(背景色)およびfg(前景色)パラメータに任意の値を指定するだけで実現できます。色の指定には、「red」や「black」などの色名のほか、「#FF0000」のような16進数カラーコードも使用できます。サンプルコード以下の例では、異なる背景色を持つ2つのフレームを作成し、それぞれのフレーム内にラベルを配置しています。#必要なライブラリをインポート from tkinter import * #tkinterフレームのインスタンスを作成 win= Tk() #ウィンドウのサイズを設定 win.geometry(65