gpt4 book ai didi

python - Tkinter - 在错误的屏幕上创建的按钮

转载 作者:行者123 更新时间:2023-12-01 04:00:50 25 4
gpt4 key购买 nike

我正在尝试使用 tkinter 创建多个窗口,但到目前为止我没有成功...当我创建一个子窗口并在其上放置一个按钮时,该按钮将在父窗口中创建!

from tkinter import *

class Login_screen(Frame):
def __init__(self,master):
Frame.__init__(self, master)
self.grid()
self.button1 = Button(text = "Open",command = lambda: self.open_login())
self.button1.grid()

def open_login(self):
self.root2 = Toplevel()
self.root2.geometry("400x200")
self.app2 = Main_screen(self.root2)

class Main_screen(Frame):
def __init__(self,master):
Frame.__init__(self,master)
self.grid()
self.button = Button(text = "Close",command = lambda: self.close_windows())
self.button.grid()

def close_windows(self):
self.grid_forget()

root = Tk()
root.geometry("800x600")
app = Login_screen(root)
root.mainloop()

最佳答案

您需要为 Button() 提供主参数:

self.button = Button(master = self, text = "Close",command = lambda: self.close_windows())

master 是小部件的第一个参数,因此也可以通过以下方式完成:Button(self, text=...)

这是一个很好的做法,您应该养成始终显式提供 master 的习惯,否则 Tk 会将此参数默认为 None 并将其放置在根窗口上。

关于python - Tkinter - 在错误的屏幕上创建的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36579066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com