运行代码:
from tkinter import *
from PIL import Image, ImageTk
import random
class Application(Frame):
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.pack()
self.createWidget()
def createWidget(self):
self.btn1 = Button(self, text='送', command=self.song)
self.btn1.pack()
self.btnquit = Button(self, text='退出', command=root.destroy, bg='red', fg='blue')
self.btnquit.pack()
def get_picture(self, filepath):
img = Image.open(filepath)
pic = ImageTk.PhotoImage(img)
return pic
def set_picture(self):
flowers = self.get_picture('flower1.jpg')
money = self.get_picture('money1.jpg')
shit = self.get_picture('shit1.jpg')
book = self.get_picture('book1.jpg')
phone = self.get_picture('phone1.jpg')
clothes = self.get_picture('clothes1.jpg')
song_list = [flowers, money, shit, book, phone, clothes]
number = random.randint(0, 5)
return song_list[number]
def song(self):
global photo
photo = self.set_picture()
self.labpic = Label(self, image=photo)
self.labpic.pack()
if __name__ == '__main__':
root = Tk()
root.geometry('800x600+200+200')
root.title('首个tk')
app = Application(master=root)
root.mainloop()
运行截图:



点击送第二次的时候图片会在第一个图的下面,点击送第三次的时候就看不到图片了
请问能不能每次点击送的时候图片都在正中间?