Tkinterのキャンバス(Canvas)上にボタンを作成する方法
Canvasウィジェットは、Tkinterライブラリの中でも特に汎用性の高いウィジェットの一つです。キャンバスを利用すれば、さまざまな図形や円弧、オブジェクトを自由に描画できるほか、それらを動かすアニメーションも実現できます。
Tkinterのキャンバス上にボタンを作成するのはとても簡単です。ポイントは、Buttonコンストラクタの親ウィジェット(parent)として、通常の親ウィンドウではなくキャンバスそのものを指定することです。これにより、ボタンはキャンバスの子ウィジェットとして配置されます。
サンプルコード
以下の例では、キャンバスウィジェット内にラベルとボタンを作成し、ボタンをクリックするとアプリケーションが終了する仕組みを実装しています。
#必要なライブラリをインポート
from tkinter import *
from tkinter import ttk
#Tkinterフレームのインスタンスを作成
win = Tk()
#フレームのサイズを設定
win.geometry("700x350")
#終了処理を行う関数を定義
def exit_program():
win.destroy()
#キャンバスウィジェットを追加
canvas = Canvas(win, width=350)
#キャンバス内にラベルウィジェットを追加
label = Label(canvas, text="Click the Button to Exit", font=('Helvetica 17 bold'))
label.pack(pady=30)
#キャンバスウィジェット内にボタンを作成
ttk.Button(canvas, text="Exit", command=exit_program).pack()
canvas.pack()
win.mainloop()コードの解説
- exit_program()関数: ボタンがクリックされたときに呼び出され、
win.destroy()によってウィンドウを閉じます。 - Labelウィジェット: キャンバス内に「Click the Button to Exit」という案内テキストを表示します。
- ttk.Button: 第1引数の親ウィジェットに
canvasを渡すことで、キャンバス上にボタンを配置しています。
実行結果
上記のコードを実行すると、キャンバスの中にボタンが配置されたウィンドウが表示されます。

「Exit」ボタンをクリックすると、ウィンドウが閉じられてプログラムが終了します。
このように、キャンバスを親ウィジェットとして指定するだけで、Tkinterでは標準ウィジェットをキャンバス上に簡単に配置できます。図形描画とGUI部品を組み合わせたインタラクティブなアプリケーションを作りたい場合に、ぜひ活用してみてください。
-
Tkinterで画像をボタンとして使う方法をわかりやすく解説
Tkinterでは、画像ファイルをそのままボタンとして表示することができます。この記事では、角丸の画像ボタンを作成する方法を、実際のコード例とともに解説します。ここで紹介する手法は、フォーム、ゲーム、ダイアログボックスなど、さまざまなアプリケーションに応用できる汎用的なテクニックです。 画像ボタンの作り方の基本 Tkinterで見栄えの良い角丸ボタンを作る最も簡単な方法は、あらかじめ用意したボタン用の画像を、クリック可能なウィジェットとして配置することです。これを実現するのがPhotoImage()関数で、指定した画像ファイルを読み込んでボタンに渡すことができます。 具体的には、以下の手順で画
-
PythonのTkinterで簡単なメッセージボックスを作成する方法
Tkinterとは Tkinterは、PythonでGUIアプリケーションを作成・開発するための標準ライブラリです。ボタンやラベルなど、アプリケーションに多彩な機能を追加するためのメソッドや関数が豊富に用意されており、ダイアログボックスなどのウィジェットも簡単に作成できます。 この記事では、ポップアップで情報を表示したり、ユーザーに選択肢を提示したりできるシンプルなメッセージボックスの作成方法を解説します。 メッセージボックスの作成例 以下のサンプルコードでは、「Click」ボタンをクリックすると、エラーメッセージと警告メッセージが順番にポップアップ表示されるようにしています。 # 必要なラ