pythongui界面小程序_Python 实现GUI界面点名

本文介绍了一个使用Python的tkinter库创建的GUI界面点名小程序。程序读取students.txt文件,随机显示学生信息,并能切换显示。同时,程序会从images文件夹中随机选择图片显示。用户点击按钮可以开始或停止点名流程。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值