簡體   English   中英

為什么 Tkinter 為我的按鈕制作一個新的 window?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM