[英]Calling an image to apper on Label - Tkinter - Python
我是Python的入門程序員。 我正在使用Tkinter庫來創建帶有下拉菜單的窗口。 在下拉菜單中選擇該項時,我創建了一個用於顯示國家標志的標簽。 但是出了點問題,什么也沒發生。 這是我的代碼,我將非常感謝誰幫助我如何進行和修復它。
from tkinter import *
root = Tk()
root.geometry('500x450+450+150')
root.title('Python Program')
menu = Menu(root)
root.config(menu=menu)
def callFlag():
photo = PhotoImage('image.png')
flag = Label(root, text='teste', image=photo)
flag.pack()
subMenu = Menu(menu, tearoff=0)
menu.add_cascade(label='Bandeiras', menu=subMenu)
subMenu.add_command(label='Mongólia', command=callFlag)
subMenu.add_command(label='Opção 2', command=callFlag)
subMenu2 = Menu(menu, tearoff=0)
menu.add_cascade(label='Menu 2', menu=subMenu2)
subMenu2.add_command(label='Opção 1', command=callFlag)
subMenu2.add_command(label='Opção 2', command=callFlag)
subMenu2.add_separator()
subMenu2.add_command(label='Exit', command=exit)
root.mainloop()
這對您有用嗎?
from tkinter import *
root = Tk()
root.geometry('500x450+450+150')
root.title('Python Program')
menu = Menu(root)
root.config(menu=menu)
def callFlag():
photo = PhotoImage(file='image.png')
flag = Label(root, text='teste', image=photo)
flag.image = photo
flag.pack()
subMenu = Menu(menu, tearoff=0)
menu.add_cascade(label='Bandeiras', menu=subMenu)
subMenu.add_command(label='Mongólia', command=callFlag)
subMenu.add_command(label='Opção 2', command=callFlag)
subMenu2 = Menu(menu, tearoff=0)
menu.add_cascade(label='Menu 2', menu=subMenu2)
subMenu2.add_command(label='Opção 1', command=callFlag)
subMenu2.add_command(label='Opção 2', command=callFlag)
subMenu2.add_separator()
subMenu2.add_command(label='Exit', command=exit)
root.mainloop()
由於該函數通過保留對photo
的額外引用( flag.image = photo
)而退出該函數,因此似乎避免了Python的垃圾回收。
另外,您可以定義圖像和標志以及其他所有標志,並在add_command
傳遞標志的pack()
函數:
from tkinter import *
root = Tk()
root.geometry('500x450+450+150')
root.title('Python Program')
menu = Menu(root)
root.config(menu=menu)
photo = PhotoImage(file='image.png')
flag = Label(root, text='teste', image=photo)
subMenu = Menu(menu, tearoff=0)
menu.add_cascade(label='Bandeiras', menu=subMenu)
subMenu.add_command(label='Mongólia', command=flag.pack)
subMenu.add_command(label='Opção 2', command=flag.pack)
subMenu2 = Menu(menu, tearoff=0)
menu.add_cascade(label='Menu 2', menu=subMenu2)
subMenu2.add_command(label='Opção 1', command=flag.pack)
subMenu2.add_command(label='Opção 2', command=flag.pack)
subMenu2.add_separator()
subMenu2.add_command(label='Exit', command=exit)
root.mainloop()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.