Tkinterでウィンドウサイズの変更に合わせてボタンを動的にリサイズする方法
Pythonには、GUIアプリケーションを作成・開発するための豊富なライブラリが数多く用意されています。その中でもTkinterは、GUIベースのアプリケーション開発で最も広く使われているPython標準ライブラリの一つです。ウィジェットの追加をはじめ、アプリケーション構築に必要なさまざまな機能や属性を備えています。
ボタンは、特定のタスクやイベントに割り当てることができるウィジェットです。しかし、ボタンのサイズや位置をウィンドウに合わせて動的に変更したい場合は、TkinterのGridモジュールを使ってレイアウトを設定します。ボタンを動的にリサイズするには、rowconfigure()メソッドとcolumnconfigure()メソッドを使用します。
Tkinterのグリッドシステムには、ウィジェットのサイズを制御するための4つの属性があり、これらは一般的に「北(n)」「南(s)」「東(e)」「西(w)」という方角を表します。画面やウィンドウのサイズに応じてボタンをレスポンシブかつ柔軟にリサイズできるようにするには、rowプロパティとcolumnプロパティにweightを設定し、さらにstickyオプションで「nsew」を指定することがポイントです。
コード例
# tkinterライブラリをインポート
from tkinter import *
win = Tk()
win.title("Dynamically Resize Buttons")
win.geometry("700x500")
# 行と列の初期設定
Grid.rowconfigure(win, 0, weight=1)
Grid.columnconfigure(win, 0, weight=1)
# ボタンを作成
b1 = Button(win, text="C++")
b2 = Button(win, text="Java")
# ボタンのリストを作成
bl = [b1, b2]
row_no = 0
# すべてのボタンに対して行ごとに設定を行う
for button in bl:
Grid.rowconfigure(win, row_no, weight=1)
row_no += 1
# グリッド上の位置を調整し、stickyで四方に伸縮するよう指定
b1.grid(row=0, column=0, sticky="nsew")
b2.grid(row=1, column=0, sticky="nsew")
win.mainloop()実行結果
上記のコードを実行すると、2つのボタンが縦一列に並んで表示されます。weightによって各行・各列に伸縮の優先度が与えられ、sticky="nsew"によってボタンがセル全体に広がるため、ウィンドウのサイズを変更すると、それに合わせてボタンも自動的に拡大・縮小されます。

ポイントのまとめ
- Grid.rowconfigure() / Grid.columnconfigure(): 行・列に対してweightを設定し、ウィンドウサイズの変化に応じた伸縮比率を決める。
- sticky="nsew": ウィジェットをセルの上下左右いっぱいに引き伸ばして配置する。
- weight=1: ウィンドウがリサイズされたときに、その行・列が余白を均等に受け取ることを意味する。
-
ウィンドウを表示せずにtkinterでクリップボードの内容を取得する方法
アプリケーション開発において、クリップボードに格納されている内容を取得したいケースはよくあります。PythonのGUIライブラリ「tkinter」では、clipboard_get()メソッドを使うことで、クリップボード内のテキストデータに簡単にアクセスできます。クリップボードからデータを取得する仕組みclipboard_get()でクリップボードからテキストを取得すると、そのデータはキャッシュメモリ上に保持されます。これにより、プログラムのデバッグや、取得したテキストをフレーム(ウィジェット)上に表示して確認することが可能になります。基本的な流れは以下のとおりです。Tkインスタンスを作成し、ウ
-
Python Tkinterで作る簡単な登録フォーム入門
Tkinterは、GUI(グラフィカルユーザーインターフェース)を開発するためのPython標準ライブラリです。Tkinterを使うことで、ウィンドウをはじめとするさまざまなUI(ユーザーインターフェース)要素を持つデスクトップアプリケーションを作成できます。推奨されているPython 3.xを使用している場合、TkinterはPythonに標準搭載されているパッケージなので、追加のインストールは一切不要です。この記事では、まずTkinterの基本的なGUIアプリケーションの作り方を解説し、その後、実際の登録フォームやローン金利計算ツールといった実用的な例まで段階的に見ていきます。シンプルなG