1
私のGUIに最初のものと全く同じ '新しいウィンドウ'オプションを持たせたい。Tkinter新しいウィンドウが適切に閉じない
問題は、新しいウィンドウを開いてからボタンを押すたびに、最初のクリックで何も起こらず、2番目の操作では何も起こらない、終了(終了)ボタンがあることです。両方のウィンドウを閉じます(3つのウィンドウが開いているので、3回目のクリックをすべて終了します)。
この関連するコード:
from Tkinter import *
from ttk import *
class Application(Tk):
def __init__(self):
self.root = Tk()
self.root.geometry("250x150")
self.app = Frame(self.root)
self.app.grid()
self.create_menu()
self.create_widgets()
self.root.mainloop()
def create_menu(self):
menu = Menu(self.root)
self.root.config(menu=menu)
sub_menu = Menu(menu)
menu.add_cascade(label="File", menu=sub_menu)
sub_menu.add_command(label="New", command=self.__init__)
sub_menu.add_command(label="Run", command=self.enter)
sub_menu.add_separator()
sub_menu.add_command(label="Exit", command=self.app.quit)
私も変更しようとしました:
sub_menu.add_command(label="New", command=self.__init__)
へ:
sub_menu.add_command(label="New", command=self.new window)
:
def new_window(self):
class App(Application):
Application.__init__(self)
どちらも同じことです。
どうすれば修正できますか?
_「オブジェクトが逆参照されている場合はTkinterが無効になります」_ - それは完全に真の文ではありません。逆参照することはできますが、破壊することはできません。またはガベージコレクタに破棄させることはできません。 'Tk'インスタンスがグローバルスコープ内に存在する場合、それは破壊されずに逆参照することができます。 –