【Python】Tkinterで作るウィンドウリサイズコントロールパネルの実装方法
この記事では、GUIベースのウィンドウリサイズコントロールパネルを作成します。このパネルには、ウィンドウの高さや幅を個別に、あるいは同時に変更できるペインが用意されており、スライダーを操作するだけで直感的にサイズを調整できます。
アプリケーションを作成するには、まずウィンドウサイズを変更するためのスライダーを用意します。スライダーはtkinterのttkライブラリに含まれているため、最初に「ttk」をインポートします。その後、リサイズ対象となる新しいウィンドウを起動できるようにします。
必要なライブラリのインポートとコントロールバーの設計
まず、必要なライブラリをすべてインポートし、スライダーを使ってコントロールバーをデザインしましょう。ここでは「幅」「高さ」「両方」の3つのラベルフレームを作成し、それぞれにスライダーを配置します。
コード例:GUIの作成
# 必要なライブラリをインポート
from tkinter import *
from tkinter import ttk
# オブジェクトを作成
win = Tk()
# タイトルを設定
win.title("Window Resizer")
lab = Label(win, text="Window Resizer", font=('Poppins bold', 20))
# ウィンドウのジオメトリ(サイズ)を定義
win.geometry("500x500")
# 新しいウィンドウを起動するボタンを作成
launch_button = Button(win, text="Launch")
launch_button.pack(pady=10)
# 幅・高さ・両方用のラベルフレームを追加
width_frame = LabelFrame(win, text="Width")
width_frame.pack(pady=10)
height_frame = LabelFrame(win, text="Height")
height_frame.pack(pady=10)
both_frame = LabelFrame(win, text="Both")
both_frame.pack(pady=10)
# 幅のスライダー
width_slider = ttk.Scale(width_frame, from_=100, to=500, orient=HORIZONTAL, length=200, value=100)
width_slider.pack(pady=10, padx=20)
# 高さのスライダー
height_slider = ttk.Scale(height_frame, from_=100, to=500, orient=VERTICAL, length=200, value=100)
height_slider.pack(pady=10, padx=20)
# 両方のスライダー
both_slider = ttk.Scale(both_frame, from_=100, to=500, orient=HORIZONTAL, length=200, value=100)
both_slider.pack(pady=10, padx=20)
# ウィンドウを実行し続ける
win.mainloop()スライダーやコントロールのGUIを作成したら、次はスライダーの操作やウィンドウの起動に応じて呼び出される各種関数を定義していきます。
まず、新しいウィンドウを開くための関数を作成します。このウィンドウに対してスライダーの操作結果が反映されます。続いて、幅のみを変更する関数、高さのみを変更する関数、そして両方を同時に変更する関数をそれぞれ定義します。
関数を定義すると、コード全体は以下のようになります。
コード例:関数の定義
# 必要なライブラリをインポート
from tkinter import *
from tkinter import ttk
# オブジェクトを作成
win = Tk()
# タイトルを設定
win.title("Window Resizer")
lab = Label(win, text="Window Resizer", font=('Poppins bold', 20))
# ウィンドウのジオメトリ(サイズ)を定義
win.geometry("500x500")
# 各イベントに対応する関数を定義
# 新しいウィンドウを開く
def launch_win():
global win1
win1 = Toplevel()
win1.geometry("100x100")
# 幅を変更する
def change_width(x):
win1.geometry(f"{int(width_slider.get())}x{int(height_slider.get())}")
# 高さを変更する
def change_height(x):
win1.geometry(f"{int(width_slider.get())}x{int(height_slider.get())}")
# 幅と高さの両方を変更する
def change_both(x):
win1.geometry(f"{int(both_slider.get())}x{int(both_slider.get())}")
# 新しいウィンドウを起動するボタンを作成
launch_button = Button(win, text="Launch", command=launch_win)
launch_button.pack(pady=10)
# 幅・高さ・両方用のラベルフレームを追加
width_frame = LabelFrame(win, text="Width")
width_frame.pack(pady=10)
height_frame = LabelFrame(win, text="Height")
height_frame.pack(pady=10)
both_frame = LabelFrame(win, text="Both")
both_frame.pack(pady=10)
# 幅のスライダー
width_slider = ttk.Scale(width_frame, from_=100, to=500, orient=HORIZONTAL,
length=200, command=change_height, value=100)
width_slider.pack(pady=10, padx=20)
# 高さのスライダー
height_slider = ttk.Scale(height_frame, from_=100, to=500, orient=VERTICAL,
length=200, command=change_width, value=100)
height_slider.pack(pady=10, padx=20)
# 両方のスライダー
both_slider = ttk.Scale(both_frame, from_=100, to=500, orient=HORIZONTAL,
length=200, command=change_both, value=100)
both_slider.pack(pady=10, padx=20)
# ウィンドウまたはフレームを実行し続ける
win.mainloop()実行結果
上記のコードを実行すると、ウィンドウリサイザーが起動します。「Launch」ボタンを押して新しいウィンドウを開き、「幅」「高さ」「両方」のいずれかのスライダーを動かすと、その値に応じてウィンドウサイズがリアルタイムに変化します。スライダーの範囲は100〜500ピクセルに設定されているため、細かくサイズを調整することも可能です。

-
Python Tkinterで透明なウィンドウを作成する方法
Pythonは、デスクトップアプリケーションをはじめとする実用的なアプリ開発で最も人気のあるプログラミング言語の一つです。豊富なライブラリと多様なモジュール・関数が用意されており、拡張性の高いアプリケーションを効率的に構築できます。その中でもTkinterは、GUIベースのアプリケーションを作成する際に最も広く使われている標準ライブラリです。ウィジェットの追加をはじめ、ウィンドウに必要なさまざまな属性を簡単に設定できるのが特徴です。透明なウィンドウを作るにはここでは、Tkinterを使って半透明のウィンドウを作成する方法を紹介します。ウィンドウの透明度を変更するには、attributes()メ
-
Python Tkinterでフレームレス(枠なし)ウィンドウを作成する方法
Tkinterは、PythonでGUIアプリケーションを開発する際に最も広く使われている標準ライブラリです。ボタンやラベルなどのウィジェット追加をはじめ、GUI構築に必要なさまざまな機能が標準で備わっています。 ここでは、Tkinterを使ってタイトルバーや境界線のない「フレームレス(ボーダーレス)ウィンドウ」を作成する方法を解説します。フレームレスウィンドウを実現するには、overrideredirectメソッドを使用します。このメソッドを有効にすると、OSのウィンドウマネージャーによる装飾が無効化され、閉じるボタン、タイトルバー、最小化ボタンといったウィンドウ要素がすべて取り除かれます。