Python 如何防止Toplevel()打开另外两个窗口?
我有一个使用Python 如何防止Toplevel()打开另外两个窗口?,python,tkinter,Python,Tkinter,我有一个使用Tkinter的程序,我正在尝试为我的root窗口中的一个按钮分配一个命令,该窗口将打开一个one附加窗口。我使用的是Toplevel(),但每当我单击已将命令分配给的按钮时,就会打开两个窗口,一个是我的root窗口名,另一个是我分配的其他窗口名 我尝试使用.draw和.destroy来隐藏或删除这个额外的root窗口,但似乎没有任何效果 这是我的密码: import Tkinter from Tkinter import * root = Tk() root.wm_title("
Tkinter
的程序,我正在尝试为我的root
窗口中的一个按钮分配一个命令,该窗口将打开一个one附加窗口。我使用的是Toplevel()
,但每当我单击已将命令分配给的按钮时,就会打开两个窗口,一个是我的root
窗口名,另一个是我分配的其他窗口名
我尝试使用.draw
和.destroy
来隐藏或删除这个额外的root
窗口,但似乎没有任何效果
这是我的密码:
import Tkinter
from Tkinter import *
root = Tk()
root.wm_title("VACS")
# # Top label # #
SetParameters = Label(text="Set Parameters", width=110, relief=RIDGE)
SetParameters.grid(row=1, column=0, columnspan=7, padx=5, pady=5)
# # Spatial freq settings # #
SpatialFreq = Label(text="Spatial Frequency", width=15, relief=RIDGE)
SpatialFreq.grid(row=3, column=0, padx=5, pady=5)
From1 = Label(text="from")
From1.grid(row=3, column=1, padx=5, pady=5)
Select1 = Spinbox(from_=0, to=10, width=25)
Select1.grid(row=3, column=2, padx=5, pady=5)
To1 = Label(text="to")
To1.grid(row=3, column=3, padx=5, pady=5)
Select2 = Spinbox(from_=0, to=10, width=25)
Select2.grid(row=3, column=4, padx=5, pady=5)
Steps = Label(text="in steps of")
Steps.grid(row=3, column=5, padx=5, pady=5)
Select3 = Spinbox(from_=0, to=10, width=25)
Select3.grid(row=3, column=6, padx=5, pady=5)
# # Contrast settings # #
Contrast = Label(text="Contrast", width=15, relief=RIDGE)
Contrast.grid(row=5, column=0, padx=5, pady=5)
From2 = Label(text="from")
From2.grid(row=5, column=1, padx=5, pady=5)
Select4 = Spinbox(from_=0, to=10, width=25)
Select4.grid(row=5, column=2, padx=5, pady=5)
To2 = Label(text="to")
To2.grid(row=5, column=3, padx=5, pady=5)
Select5 = Spinbox(from_=0, to=10, width=25)
Select5.grid(row=5, column=4, padx=5, pady=5)
Steps2 = Label(text="in steps of")
Steps2.grid(row=5, column=5, padx=5, pady=5)
Select6 = Spinbox(from_=0, to=10, width=25)
Select6.grid(row=5, column=6, padx=5, pady=5)
# # Test button # #
Test = Button(text="Begin Test", width=25, command=Top)
Test.grid(row=6, column=0, columnspan=7, pady=5)
# # Directory input window # #
def Top():
Toplevel()
Toplevel().wm_title("Directory")
root.mainloop()
如果在root
窗口中单击“开始测试”,则会弹出两个额外选项。我只想要那个写着“目录”的
有什么想法吗?您正在创建两个,因为
Toplevel()
是构造函数调用:
Toplevel()
Toplevel().wm_title("Directory")
而是创建一个并保存它:
top = Toplevel()
top.wm_title("Directory")
当我尝试此操作时,我得到了“AttributeError:'function'object没有属性'wm_title'。此外,弹出的窗口的标题是“VACS”,而不是“Directory”,但您的命名样式与约定不匹配。它本身并没有什么问题,但看看你是否关心这类事情。谢谢,我会记住这一点。我不是一个大孩子程序员,所以我不知道命名约定。