簡體   English   中英

在Label上調用圖像到apper-Tkinter-Python

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

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