如何从 Tkinter 中的 Toplevel() 窗口中删除标题栏。 现在我的主要工作是
self.master.title("Subtest")
self.master.geometry("400x200")
self.alertwindow()
Label(self.master,textvariable=self.connected,height=4).grid(row=0,column=0)
Button(self.master,text="Monitor",command= lambda: self.startnewthread(1),width=10).grid(row=6,column=1)
Button(self.master,text="Quit",command=self.haltprogram).grid(row=6,column=0)
对于我的警报窗口功能,我有
def alertwindow(self):
self.listbox=Listbox(Toplevel(self.master,width=150).overrideredirect(True),width=150).pack)
我希望程序打开一个根窗口,然后打开一个没有标题栏的顶级列表框;但是,程序现在唯一做的就是卡住,当我删除 .overrideredirect(True) 时,程序会启动两个列表框窗口。如何让程序在 Windows 上只打开一个没有标题栏的列表框?谢谢
最佳答案
看这一行
self.listbox=Listbox(Toplevel(self.master,width=150).overrideredirect(True),width=150).pack)
很明显,您试图在一行上做太多事情。 (你的括号甚至不匹配)。我们分手吧,好吗?
new_top = Toplevel(self.master,width=150)
new_top.overrideredirect(True)
self.listbox = Listbox(new_top,width=150)
self.listbox.pack()
另请注意,您似乎正在使用 .grid
和 .pack
——通常这是不明智的,Tkinter
会很高兴地花费所有当您尝试一起使用小部件时,永恒会尝试协商小部件的正确放置位置。
我对正在发生的事情的猜测:
- 您的实际代码具有正确平衡的括号,因此不会出现 SyntaxError
- Toplevel.overrideredirct 返回 None
- Listbox 将 None 视为父窗口小部件并替换根窗口小部件 (
Tk
) - 然后您在根小部件上使用
.grid
和.pack
,这会导致您的程序挂起。
关于python - 删除 TKinter Python 中的窗口标题栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14149549/