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()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/233626.html
標籤:其他
上一篇:微機原理復習要點
下一篇:EDA課程期末考試題(通信信工)
