[Python] Tkinterで複数のWindowを表示
はじめに
Tkinterで複数のWindow画面を表示する方法を説明します。
結果
Tkinterのクラス化のテンプレートを利用しました。
下記の手順で、コードを組み立てます。
- Window 1のためのWin1クラスを用意する。
- Window 2のためのWin2クラスを用意する。
- Win1クラスのCall back function(Buttonを押すときの動作)に、Windows 2を開ける動作を定義する。
プログラミングコード
import tkinter as tk
from tkinter import ttk
class Win1(tk.Frame):
def __init__(self,master):
super().__init__(master)
self.pack()
self.master.geometry("400x400")
self.master.title("window 1")
self.create_widgets()
def create_widgets(self):
# Button
self.button_new_win = ttk.Button(self)
self.button_new_win.configure(text="Open Window 2")
self.button_new_win.configure(command = self.new_window)
self.button_new_win.pack()
#Call back function
def new_window(self):
self.newWindow = tk.Toplevel(self.master)
self.app = Win2(self.newWindow)
class Win2(tk.Frame):
def __init__(self,master):
super().__init__(master)
self.pack()
self.master.geometry("300x300")
self.master.title("window 2")
self.create_widgets()
def create_widgets(self):
# Button
self.button_quit = ttk.Button(self)
self.button_quit.configure(text="Close Window 2")
self.button_quit.configure(command=self.quit_window)
self.button_quit.pack()
def quit_window(self):
self.master.destroy()
def main():
root = tk.Tk()
app = Win1(master=root)#Inherit
app.mainloop()
if __name__ == "__main__":
main()
参考資料
import tkinter as tk
from tkinter import ttk
class Win1(tk.Frame):
def __init__(self,master):
super().__init__(master)
self.pack()
self.master.geometry("400x400")
self.master.title("window 1")
self.create_widgets()
def create_widgets(self):
# Button
self.button_new_win = ttk.Button(self)
self.button_new_win.configure(text="Open Window 2")
self.button_new_win.configure(command = self.new_window)
self.button_new_win.pack()
#Call back function
def new_window(self):
self.newWindow = tk.Toplevel(self.master)
self.app = Win2(self.newWindow)
class Win2(tk.Frame):
def __init__(self,master):
super().__init__(master)
self.pack()
self.master.geometry("300x300")
self.master.title("window 2")
self.create_widgets()
def create_widgets(self):
# Button
self.button_quit = ttk.Button(self)
self.button_quit.configure(text="Close Window 2")
self.button_quit.configure(command=self.quit_window)
self.button_quit.pack()
def quit_window(self):
self.master.destroy()
def main():
root = tk.Tk()
app = Win1(master=root)#Inherit
app.mainloop()
if __name__ == "__main__":
main()
Author And Source
この問題について([Python] Tkinterで複数のWindowを表示), 我々は、より多くの情報をここで見つけました https://qiita.com/kotai2003/items/0d6bafb753bb0374033c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .