import tkinter as tk
import random
import time
from PIL import Image, ImageTk
import os
class Window:
def init(self):
self.__root=tk.Tk()
self.__root.title(“点名小程序”)
self.__root.geometry(“300x300”)
path=“students.txt”
self.__r=Random(path)
self.__new_img=self.__r.get_img()
self.__img=tk.Label(self.__root,image=self.__new_img)
self.__img.pack()
self.__name=tk.Label(self.__root,text=self.__r.get_random()[0])
self.__name.pack()
self.__num=tk.Label(self.__root,text=self.__r.get_random()[1])
self.__num.pack()
self.__bnt=tk.Button(self.__root, text=“开始”, font=(“楷体”, 12),command=self.shift,width=10, height=2,)
self.__bnt.pack(side=“bottom”,pady=10)
self.flag=False
self.__root.mainloop()
def shift(self):
self.flag= not self.flag
if self.flag:
self.__bnt.configure(text=“停止”)
self.__root.update()
else:
self.__bnt.configure(text=“开始”)
self.__root.update()
while self.flag:
data = self.__r.get_random()
self.__new_img=self.__r.get_img() #不能用局部变量存照片,否则退出函数后标签上的照片会消失
self.__img.configure(image=self.__new_img)
self.__name.configure(text=f"学号:{data[0]}")
self.__num.configure(text=f"姓名:{data[1]}")
self.__root.update()
time.sleep(0.1)
class Random:
def init(self,path):
with open(path,“r”,encoding=‘utf-8’) as f:
self.__students=f.read().splitlines()
def get_random(self):
student=random.choice(self.__students)
return student.split(",")
def get_img(self):
pathDir = os.listdir(“images/”)
sample = random.sample(pathDir, 1)
img=Image.open(f"images/{sample[0]}")
photo=ImageTk.PhotoImage(img)
return photo
def main():
win=Window();
if name==“main”:
main()
文章来源: blog.csdn.net,作者:weixin_45870321,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_45870321/article/details/111054653