Почему TKinter открывает 2 windows при добавлении фона - PullRequest
1 голос
/ 28 мая 2020

Я пытаюсь добавить фон в свое окно Tkinter, но когда я использую этот код, он открывает фон как другое окно Tkinter, а главное окно - как отдельное. Как их объединить?

from tkinter import *
from tkinter.filedialog import askopenfilename
from tkinter import messagebox

top = Tk()

C = Canvas(top, bg ="blue", height=250, width=300)
filename = PhotoImage(file = "C:/Users/plapl/Desktop/ching.pgm")
background_label = Label(top, image=filename)
background_label.place(x=0, y=0, relwidth=1, relheight=1)

C.pack()
top.mainloop()


def newfile():
    print("New File!")


root = Tk()
menu = Menu(root)
root.config(menu=menu)
filemenu = Menu(menu)
menu.add_cascade(label="File", menu=filemenu)
filemenu.add_command(label="New", command=newfile)
filemenu.add_separator()
filemenu.add_command(label="Exit", command=root.quit)


mainloop()

1 Ответ

2 голосов
/ 28 мая 2020

Я упростил ваш код, и теперь он работает для меня в 1 окне, а также я импортировал модуль, который вы могли пропустить (PIL)

Код:

from tkinter import *
from PIL import ImageTk
from tkinter.filedialog import askopenfilename
from tkinter import messagebox

top = Tk()

C = Canvas(top, bg ="blue", height=250, width=300)
filename = ImageTk.PhotoImage(file = "C:/Users/plapl/Desktop/ching.pgm")
background_label = Label(top, image=filename)
background_label.place(x=0, y=0, relwidth=1, relheight=1)
C.pack()


def newfile():
    print("New File!")


menu = Menu(top)
top.config(menu=menu)
filemenu = Menu(menu)
menu.add_cascade(label="File", menu=filemenu)
filemenu.add_command(label="New", command=newfile)
filemenu.add_separator()
filemenu.add_command(label="Exit", command=top.quit)


top.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...