我试过环顾四周,但只能找到试图在按钮上更改图像的人,而不是用按钮
这是我到目前为止所拥有的
from Tkinter import *
import Tkinter as tk
from random import randrange
from PIL import ImageTk, Image
import tkMessageBox
import tkFont
root = tk.Tk()
root.title("Randomizer")
root.minsize(900,600)
root.maxsize(900,600)
adress = "C:\Users\pc\Desktop\ClassPics\Class.png"
playerclass1 = ImageTk.PhotoImage(Image.open(adress))
panel = tk.Label(root, image = playerclass1)
panel.pack(side='top')
def randomizer():
playerclassV = randrange(0,10)
if playerclassV == 0:
adress = "C:\Users\pc\Desktop\ClassPics\1.png"
elif playerclassV == 1:
adress = "C:\Users\pc\Desktop\ClassPics\2.png"
elif playerclassV == 2:
adress = "C:\Users\pc\Desktop\ClassPics\3.png"
elif playerclassV == 3:
adress = "C:\Users\pc\Desktop\ClassPics\4.png"
elif playerclassV == 4:
adress = "C:\Users\pc\Desktop\ClassPics\5.png"
elif playerclassV == 5:
adress = "C:\Users\pc\Desktop\ClassPics\6.png"
elif playerclassV == 6:
adress = "C:\Users\pc\Desktop\ClassPics\7.png"
elif playerclassV == 7:
adress = "C:\Users\pc\Desktop\ClassPics\8.png"
else:
adress = "C:\Users\pc\Desktop\ClassPics\9.png"
playerclass = ImageTk.PhotoImage(Image.open(adress))
panel.configure(image = playerclass)
panel.image = playerclass
Randomize = Button ( root, text="Randomize", justify="center", width=20, command=randomizer())
Randomize.pack(side = 'bottom')
root.mainloop()
这个想法是在一个只有初始图像和随机化按钮的窗口中开始,随机化按钮用randrange函数随机选择的9个图像中的1个替换初始图像。现在它不是显示初始图像,而是直接进入该功能(显示9个后一个图片中的一个,而不是初始图片),按钮什么都不做
请帮助
答案 0 :(得分:2)
这是因为你调用这个功能。
您应该使用command=randomizer
。如果您希望在运行程序时不调用该函数,请不要使用()
。
如果您希望发送一些参数(在这种情况下不明显),您可以使用command=lambda:randomizer(args)
。
有关更详细的答案,请参阅this