Python
 Computer >> コンピューター >  >> プログラミング >> Python

【Python】Tkinterでポップアップウィンドウ(子ウィンドウ)を作成する方法

TkinterのToplevelクラスとは?

TkinterにはToplevelクラスが用意されており、これを使うことでメインウィンドウとは別の独立したウィンドウ(トップレベルウィンドウ)を作成できます。トップレベルウィンドウは「子ウィンドウ」とも呼ばれ、ダイアログや設定画面などによく利用されます。

トップレベルウィンドウを作成するには、Toplevel(parent)のオブジェクトを生成します。このウィンドウは親オブジェクトのプロパティをすべて継承し、通常のウィンドウと同様に、ウィジェットやフレーム、キャンバスなどの各種オブジェクトを自由に配置できます。

サンプルコード:ボタンをクリックしてポップアップウィンドウを開く

以下の例では、メインウィンドウ上のボタンをクリックすると、新しいポップアップウィンドウが開くプログラムを作成します。

# 必要なライブラリをインポート
from tkinter import *

# Tkinterフレームのインスタンスを作成
win = Tk()

# ウィンドウサイズを設定
win.geometry("700x250")

def open_win():
    # トップレベルウィンドウを生成
    top = Toplevel(win)
    top.geometry("700x250")
    top.title("Child Window")
    # トップレベルウィンドウ内にラベルを作成
    Label(top, text="Hello World!")

# メインウィンドウにラベルとボタンを配置
Label(win, text="Click the button to Open Popup Window", font=('Helvetica 18')).place(relx=.5, rely=.5, anchor=CENTER)
Button(win, text="Click Me", background="white", foreground="blue", font=('Helvetica 13 bold'), command=open_win).pack(pady=50)
win.mainloop()

コードのポイント

  • Toplevel(win):親ウィンドウ(win)を指定して、新しいトップレベルウィンドウのインスタンスを生成します。
  • top.geometry("700x250"):子ウィンドウのサイズを設定します。
  • top.title("Child Window"):子ウィンドウのタイトルバーに表示される文字列を設定します。
  • command=open_win:ボタンがクリックされるとopen_win関数が呼び出され、ポップアップウィンドウが開きます。

実行結果

上記のコードを実行すると、ラベルとボタンが配置されたメインウィンドウが表示されます。

【Python】Tkinterでポップアップウィンドウ(子ウィンドウ)を作成する方法

続いて、ボタンをクリックすると、新しいポップアップウィンドウ(子ウィンドウ)が開きます。

【Python】Tkinterでポップアップウィンドウ(子ウィンドウ)を作成する方法

  1. Tkinterでスプラッシュ画面を作成する方法をわかりやすく解説

    アプリケーションを起動した際に一瞬だけ表示される「スプラッシュ画面」。ロゴや読み込み中表示などを映し出すことで、アプリに洗練された印象を与えられます。Pythonの標準GUIライブラリであるTkinterを使えば、このスプラッシュ画面も簡単に実装できます。スプラッシュ画面作成の基本手順Tkinterでスプラッシュ画面を作成するには、以下の手順に従います。ラベルなどを配置したスプラッシュ画面を作成するoverrideredirectメソッドを使って、スプラッシュ画面を枠なし(ボーダーレス)にするスプラッシュ画面の直後に表示されるメインウィンドウを生成する関数を定義するafterメソッドを使って、

  2. tkinterでウィンドウを閉じる方法|destroy()メソッドの使い方を解説

    tkinterを使えば、Pythonで手軽にGUIアプリケーションを作成できます。しかし、タイトルバー右上の×ボタン以外の方法でウィンドウやフレームを閉じたい場合、どのように実装すればよいか悩むこともあるでしょう。そのようなときに役立つのが、ウィンドウを破棄して閉じるための .destroy() メソッドです。tkinterの各ウィジェットや属性は互いに独立しているため、「ウィンドウを閉じる処理」を専用の関数として分離して定義できます。これにより、ボタンのクリックイベントからウィンドウを閉じる動作を自由に制御可能です。サンプルコード# ライブラリをインポート from tkinter impo