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”,但您的命名样式与约定不匹配。它本身并没有什么问题,但看看你是否关心这类事情。谢谢,我会记住这一点。我不是一个大孩子程序员,所以我不知道命名约定。