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

Tkinter GUIでボタンを押して新しいウィンドウを開く方法

Tkinterでは、アプリケーションごとにデフォルトのウィンドウ(マスターウィンドウまたはルートウィンドウ)が自動的に作成されます。さらに、Toplevel(master)コンストラクタを使うことで、ポップアップウィンドウや子ウィンドウを簡単に作成できます。このToplevelウィンドウは、サイズプロパティを指定することで動的にリサイズすることも可能です。

サンプルコード

以下の例では、クリックするとテキストラベル付きの新しいウィンドウを開くボタンウィジェットを作成しています。

#Import tkinter library
from tkinter import *
from tkinter import ttk
#Create an instance of tkinter frame or window
win= Tk()
#Set the geometry of tkinter frame
win.geometry("750x250")
#Define a new function to open the window
def open_win():
   new= Toplevel(win)
   new.geometry("750x250")
   new.title("New Window")
   #Create a Label in New window
   Label(new, text="Hey, Howdy?", font=('Helvetica 17 bold')).pack(pady=30)
#Create a label
Label(win, text= "Click the below button to Open a New Window", font= ('Helvetica 17 bold')).pack(pady=30)
#Create a button to open a New Window
ttk.Button(win, text="Open", command=open_win).pack()
win.mainloop()

実行結果

上記のコードを実行すると、ボタンウィジェットが配置されたウィンドウが表示されます。

Tkinter GUIでボタンを押して新しいウィンドウを開く方法

次に、「Open」ボタンをクリックしてみましょう。すると、新しいウィンドウが開きます。

Tkinter GUIでボタンを押して新しいウィンドウを開く方法

ポイント解説

  • Toplevel(win):既存の親ウィンドウ(win)を引数として渡すことで、その子となる新しいウィンドウを生成します。
  • geometry()メソッド:「幅x高さ」の形式でウィンドウサイズを指定できます。
  • command=open_win:ボタンがクリックされたときに実行される関数を指定します。

このように、Toplevelウィジェットを活用すれば、設定画面や確認ダイアログなど、複数のウィンドウを持つGUIアプリケーションを手軽に構築できます。

  1. Tkinterでボタンのcommandに引数を渡す方法を解説

    Tkinterでアプリケーションを開発していると、ボタンをクリックしたときに特定のウィンドウを開いたり、何らかのイベントを実行したりしたい場面がよくあります。ボタンを完全に機能させるためには、commandオプションに関数を渡す仕組みを理解しておくことが重要です。 commandオプションとは commandはButtonウィジェットの属性のひとつで、値として「関数名」を受け取ります。ここに指定された関数が、ボタンが押されたときに実行されるイベントの動作を定義します。 まずは基本となる例として、ウィンドウとボタンを作成し、command属性に関数を渡してイベントを発生させてみましょう。 サンプ

  2. Tkinterウィンドウを常に他のウィンドウの最前面に表示する方法

    GUIプログラムを作成する際、Tkinterのウィンドウはデフォルトでは他のアプリケーションの背後に表示されることがあります。つまり、プログラムを実行しても、そのウィンドウが他のソフトウェアの裏側に隠れてしまうケースがあるのです。 Tkinterウィンドウを常に他のウィンドウより前面に表示させたい場合は、attributes(-topmost, True) プロパティを使用します。この設定を行うことで、ウィンドウが最前面に固定され、ユーザーが他のアプリケーションを操作している間も、常に手前に表示され続けるようになります。 コード例 # ライブラリのインポート from tkinter impo