GUI实现学生点名系统

python的实验期中作业,随便写了下
代码如下:

"""
Created on Sat Dec  8 15:32:29 2020

@author: 散修涵
"""

from tkinter import *
import time
from PIL.ImageTk import PhotoImage
import os,sys
import random

import tkinter.font as tf

tmp = []
class RandName():
    def __init__(self):
        self.xing='曾赵郭卢黄彭周余林罗万李胡张徐毛'
        self.ming='英雄出少年更上一层楼探手摘星辰再无这般人'
        self.xuehao='0123456789'
        self.randfile()
    
    def randfile(self):
        for i in range(30):
            X=random.choice(self.xing)
            M="".join(random.choice(self.ming) for i in range(2))
            H="".join(random.choice(self.xuehao) for i in range(9))
            tmp.append(X+M+H) 
        
        with open('F:/student.txt', 'w') as file:
            for i in range(30):
                file.write(str(tmp[i]))
                file.write('\n')                 
 
class RandPeople:
    def __init__(self): 
        self.root = Tk()
        self.root.title("计算机191班学生信息")
        self.root.geometry('800x600')

        self._running = True
        self.timestr = StringVar()

        self.creat()
        mainloop()
    def creat(self):
        #  定义标签栏
        self.page=Frame(self.root)
        self.page.pack(side=TOP)
        self.page2=Frame(self.root,bg="red",width=20,height=10)
        self.page2.pack()
        Button(self.page, text='start', command=self.Start, width=10, height=2).pack(side=RIGHT)
        Button(self.page, text='stop', command=self.Stop, width=10, height=2).pack(side=RIGHT)
        #self.label=Label(self.page2, bg="yellow",font=('粗体', 20)).pack()
        self.text=Text(self.page2,height=5,width=40)
        self.text.pack()
        imgdir=r'F:/touxiang/p3.jpg'
        imgobj=PhotoImage(file=imgdir) 
        
        self.canvas=Canvas(self.root,width=800,height=700,bd=1,highlightthickness=0)
        image=self.canvas.create_image(0,150,image=imgobj) 
        self.canvas.pack(side=TOP)

    def ImaShow(self):
        
        while self._running:
            i=random.randint(1,12)
            imgdir=r'F:/touxiang/p{}.jpg'.format(i)
            #print(imgdir)
            imgobj=PhotoImage(file=imgdir)
            image=self.canvas.create_image(400,150,image=imgobj)
            self.canvas.pack(side=TOP)
            f = open('F:/student.txt')
            r = f.readlines()
            f.close()
            self.text.delete('1.0','end')
            
            ft = tf.Font(family='微软雅黑',size=20) ###有很多参数
            self.text.tag_add('tag',END) #申明一个tag,在a位置使用
            self.text.tag_config('tag',font =ft )
                        
            
            j=random.randint(0,29)
            self.text.insert(END,"    "+r[j],'tag')
            self.root.update() 
            self.root.after(5)

        mainloop()#用来维持画布中的图片不消失
    def Start(self):
        # 开始
        if not self._running:
            self._running = True
        #print(self._running)
        self.ImaShow()
    def Stop(self):
        # 暂停
        if self._running:
            self._running = False

        self.ImaShow()
        self.root.update()
if __name__ == '__main__':
    
    rn = RandName()
    rp=RandPeople()

运行效果图:
在这里插入图片描述
在这里插入图片描述

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值