我正在制作一个程序,为您提供有关星球/星星的信息和图片。我正在使用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() #