[英]Why does Tkinter make a new window for my button?
我試圖在我的 window 中添加一個按鈕,但它為該按鈕創建了一個新的 window,如何將它添加到我有背景的同一個 window 中?
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 個 windows。 要解決此問題,請將以下行: background_label = Label(top, image=filename)
更改為: background_label = Label(root, image=filename)
。
然后,您可以去掉這一行: top = Tk()
因為它不再需要了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.