我正在製作一個程序,爲您提供有關星球/星星的信息和圖片。我正在使用tkinter來這樣做。Python - Tkinter與標籤和照片
這裏是一個問題就出現了各地代碼:
sunPic = r'sun.gif'
mercPic = r'merc.gif'
buttonFrame = Frame(root)
buttonFrame.pack(side=LEFT)
textFrame = Frame(root)
textFrame.pack(side=TOP)
def sunInfo():
sunImage = PhotoImage(file=sunPic)
img1 = Label(textFrame, image = sunImage)
img1.image = sunImage
img1.pack()
def mercInfo():
mercImage = PhotoImage(file=mercPic)
img1.configure(image = mercImage)
img1.image = mercImage
img1.pack()
sun = Button(buttonFrame, text="THE SUN",command=sunInfo)
sun.pack(side=TOP)
mercury = Button(buttonFrame, text="MERCURY",command=mercInfo)
mercury.pack(side=TOP)
當你按下一個按鈕,它應該改變圖像。所以說如果我按下「太陽」按鈕,會出現一張太陽照片,然後我按下MERCURY按鈕,水銀圖片將取代太陽圖片。
但這並不奏效。當我點擊該按鈕,汞談到了這個錯誤:
img1.configure(image = mercImage)
NameError: global name 'img1' is not defined
另外,如果我按SUN幾次按鈕,太陽的幾個圖像顯示出來!我不想要這個。
我想做的事,這個方案做:
創建與行星名稱按鈕。
允許用戶按了按鈕
的圖片,在該行星的一些信息顯示
如果用戶按下另一個按鈕,圖像和信息是由新行星的信息取代和圖片。
這是我今晚需要完成的一個項目。我有一點tkinter的經驗,我需要幫助。
謝謝。
ALSO:
這裏是我工作的全部代碼:
from tkinter import *
root = Tk()
root.geometry('1024x768+200+200') # makes window (x,y+top left corner right + top left corner down)
root.title("Planetary Information") # creates title for window
sunPic = r'sun.gif'
mercPic = r'merc.gif'
buttonFrame = Frame(root)
buttonFrame.pack(side=LEFT)
textFrame = Frame(root)
textFrame.pack(side=TOP)
def sunInfo():
sunImage = PhotoImage(file=sunPic)
img1 = Label(textFrame)
img1.configure(image = sunImage)
img1.image = sunImage
img1.pack()
def mercInfo():
mercImage = PhotoImage(file=mercPic)
img1.configure(image = mercImage)
img1.image = mercImage
img1.pack()
sun = Button(buttonFrame, text="THE SUN",command=sunInfo)
sun.pack(side=TOP)
mercury = Button(buttonFrame, text="MERCURY",command=mercInfo)
mercury.pack(side=TOP)
venus = Button(buttonFrame, text="VENUS")
venus.pack(side=TOP)
earth = Button(buttonFrame, text="EARTH")
earth.pack(side=TOP)
mars = Button(buttonFrame, text="MARS")
mars.pack(side=TOP)
jupiter = Button(buttonFrame, text="JUPITER")
jupiter.pack(side=TOP)
saturn = Button(buttonFrame, text="SATURN")
saturn.pack(side=TOP)
uranus = Button(buttonFrame, text="URANUS")
uranus.pack(side=TOP)
neptune = Button(buttonFrame, text="NEPTUNE")
neptune.pack(side=TOP)
root.mainloop() #