我正在尝试将按钮添加到我的窗口中,但是它为该按钮创建了一个新窗口,如何将其添加到我有背景的同一窗口中?
from tkinter import *
from tkinter.filedialog import askopenfilename
from tkinter import messagebox
from PIL import ImageTk
top = Tk()
C = Canvas(top, bg ="blue", height=1920, width=1080)
filename = ImageTk.PhotoImage(file = "C:/Users/plapl/Desktop/ching.jpg")
background_label = Label(top, image=filename)
background_label.place(x=0, y=0, relwidth=1, relheight=1)
C.pack()
root = Tk()
myButton = Button(root, text = "Add a task")
myButton.pack()
root.mainloop()
这是因为您为Tk()创建了一个新实例。更改为:
from tkinter import *
from tkinter.filedialog import askopenfilename
from tkinter import messagebox
from PIL import ImageTk
top = Tk()
C = Canvas(top, bg ="blue", height=1920, width=1080)
filename = ImageTk.PhotoImage(file = "C:/Users/plapl/Desktop/ching.jpg")
background_label = Label(top, image=filename)
background_label.place(x=0, y=0, relwidth=1, relheight=1)
C.pack()
myButton = Button(top, text = "Add a task")
myButton.pack()
root.mainloop()
这是因为您有2 Tk()对象,这意味着将创建2个窗口。要解决此问题,请将行:background_label = Label(top, image=filename)
更改为此:background_label = Label(root, image=filename)
。
然后,您可以删除此行:top = Tk()
,因为不再需要它。