Tkinterでウィジェットの境界線を取り除く方法|highlightthicknessとborderwidthの使い方
Tkinterには、Button、Entry、Frame、Label、Radiobutton、Scrollbarなど、さまざまな種類のウィジェットが標準で用意されています。ウィジェットとは、情報を表示したり、ユーザーがシステムを操作したりするための標準的なGUI(グラフィカルユーザーインターフェース)要素のことです。
本記事では、Canvas、Entryフィールド、Label、Buttonから境界線(ボーダー)を取り除く方法を、実際のコード例とともに分かりやすく解説します。
境界線を取り除く手順
必要なライブラリをインポートし、tkinterフレームのインスタンスを作成します。
root.geometryメソッドを使って、ウィンドウのサイズを設定します。
次にCanvasを作成し、bd属性でキャンバスの境界線の幅を指定します。さらにhighlightthickness属性を使うことで、キャンバスの境界線を表示するかどうかを制御できます。境界線を非表示にしたい場合はhighlightthickness=0を設定しましょう。
続いて、Entryウィジェットを2つ作成します。borderwidth属性を指定することで、片方のEntryにのみ境界線を付けることができます。
同様にLabelを2つ作成し、borderwidth属性とrelief='solid'を組み合わせることで、ラベルの周囲に枠線を表示できます。
次にButtonを2つ作成し、片方にborderwidth=0を設定します。これにより、ボタン周囲の境界線を取り除けます。
最後に、アプリケーションウィンドウのmainloopを実行します。
サンプルコード
# 必要なライブラリをインポート
from tkinter import *
# tkinterフレームのインスタンスを作成
root=Tk()
# ウィンドウのサイズを設定
root.geometry("700x350")
# キャンバスウィジェットを作成
canvas= Canvas(root, bd=2, highlightthickness=2)
canvas.pack(side=TOP, padx=10, pady=10)
# 境界線付きのEntryウィジェットを作成
text=Entry(canvas, width=50)
text.insert(0, "Widget with border")
text.config(borderwidth=5)
text.pack(side=TOP, padx=10, pady=10)
# 境界線なしのEntryウィジェットを作成
text=Entry(canvas, width=50)
text.insert(0, "Widget without border")
text.pack(side=TOP, padx=10, pady=10)
# 境界線付きのラベル
label1 = Label(canvas, text="Label with border", borderwidth=2, relief='solid', font="Calibri, 14")
label1.pack(side=BOTTOM, padx=10, pady=10)
# 境界線なしのラベル
label2 = Label(canvas, text="Label without border", borderwidth=0, font="Calibri, 14")
label2.pack(side=BOTTOM, padx=10, pady=10)
# 通常のボタン
button1 = Button(root, text="Standard Button")
button1.pack(side=TOP, padx=10, pady=10)
# 境界線なしのボタン
button2 = Button(root, text="Button without Border", borderwidth=0)
button2.pack(side=TOP, padx=10, pady=10)
root.mainloop()実行結果
このコードを実行すると、次のような画面が表示されます。

ご覧のとおり、Canvasウィジェットには境界線が表示されています。Canvasでhighlightthickness=0を設定すれば、周囲の境界線は表示されなくなります。
また、ボタンも2つ配置しており、1つ目は通常の境界線付き、2つ目は境界線なしです。Buttonウィジェットの境界線を削除するには、borderwidth=0パラメータを使用します。
-
Tkinterでウィジェットの現在のX・Y座標を取得する方法
Tkinterは、PythonでGUIアプリケーションを開発するために広く利用されている標準ライブラリです。ボタン、テキストボックス、ラベルなど、さまざまなウィジェットが用意されており、これらを組み合わせることで直感的なユーザーインターフェースを構築できます。さらに、ウィジェットの配置位置や座標も、専用の関数やライブラリを使って柔軟にカスタマイズすることが可能です。ここでは、Tkinterフレーム上に配置したウィジェットの実際の座標を取得する方法を紹介します。ウィジェットの正確な座標を知りたい場合には、Tkinterライブラリが提供するgeometry(ジオメトリ)関連のメソッドを活用します。
-
Python Tkinterでルートウィンドウを非表示・破棄する2つの方法
Tkinterアプリケーションのテスト中に、デフォルトのウィンドウやフレームを一時的に隠したい、あるいは完全に閉じたいという場面に遭遇することがあります。Tkinterでは、withdraw()メソッドによる「非表示」と、destroy()メソッドによる「破棄」の2つのアプローチが用意されています。mainloop()とウィンドウのライフサイクルmainloop()は、外部イベントによってウィンドウが閉じられるまで、Tkinterアプリケーションを実行し続ける役割を担います。このメインループが動作している間、ウィンドウは画面上に表示され続けます。ウィンドウを完全に破棄(終了)したい場合は、de