**特点:**包含姓名、学号和图对应滚动,随机点名
代码如下:

'''
*****************************
利用窗体随机点名
包含图的滚动
*****************************
'''from tkinter import *  #窗体
import tkinter as tk
import time  #时间
from PIL import Image,ImageTk  #图
import os
import glob  #文件中调图用class RandomName(Frame):def __init__(self, parent=None, **kw):  #定义类中属性,_init_为python固定用法Frame.__init__(self, parent, kw)self.name_list = []  #存放姓名self.num_list=[]  #存放学号self.pic_list=[]  #存放图self._start = 0.0self._elapsedtime = 0.0self._running = False  #是否正在运行self.timestr = StringVar()  #姓名临时变量self.timestr2=StringVar()  #学号临时变量self.timestr3=StringVar()  #图self.makeWidgets()  #定义标签栏def makeWidgets(self):  #调用set_name函数方法#self.timestr = '姓名'labName = Label(self, textvariable=self.timestr, font=("Arial, 35"))  #令标签临时变量为self.timestr,改变其赋值就可改变文本显示self.set_name(self._elapsedtime)  #调用set_name函数方法labName.pack()#self.timestr2 = '学号'labNum = Label(self, textvariable=self.timestr2, font=("Arial, 35"))#self.set_name(self._elapsedtime)  #调用set_name函数方法labNum.pack()def set_name(self, elap):  #elap为一个时间参数# 随机产生姓名cur = int(elap * 100 % 30)  #列表中序号name_list = ['生安', '李鑫灏', '薛佛世', '蔡壮保', '钱勤堃', '潘恩依', '陈国柏', '魏皑虎','周卓浩', '汤辟邦', '张顺谷', '张悌斯', '张灶冲', '易江维', '孙来笙', '饶展林','岳列洋', '时党舒', '周迟蒲', '廉梦容', '张淮森', '夏劲釜', '好隐', '刘昼星','池弈', '邹包幼', '施峪', '武慎萌', '范千皋', '潘佩焱']num_list = ['1', '2', '3', '4', '5', '6', '7', '8','11', '22', '33', '44', '55', '66', '77', '88','111', '222', '333', '444', '555', '666', '777', '888','1111', '2222', '3333', '4444', '5555', '6666']image_dir = r"F:\PythonFiles\PycharmFile\picture"file_glob = os.path.join(image_dir, "*." + "png")  #图的数量要和姓名数量一样self.pic_list.extend(glob.glob(file_glob))self.timestr.set(name_list[cur])  #给姓名标签赋值self.timestr2.set(num_list[cur])  #给学号标签赋值#self.timestr3.set(self.pic_list[cur])self.pic_label(self.pic_list[cur])# 更新显示内容def update(self):self._elapsedtime = time.time() - self._startself.set_name(self._elapsedtime)  # 设置显示内容self._timer = self.after(50, self.update)  # 刷新界面# 开始按钮def Start(self):if  self._running==False:  #初始为默认为falseself._start = time.time() - self._elapsedtimeself.update()self._running = True# 暂停按钮def Stop(self):if self._running==True:self.after_cancel(self._timer)self._elapsedtime = time.time() - self._startself.set_name(self._elapsedtime)self._running = False# 显示窗口def name_label(self):btnStart=Button(self, text='start', command=self.Start, width=10, height=2)btnStart.pack()btnEnd=Button(self, text='stop', command=self.Stop, width=10, height=2)btnEnd.pack()self.pack()# 定义图标签位def pic_label(self,path):img =path   # 路径photo = Image.open(img)  #利用Image模块打开图w,h=photo.size  #原始尺寸resizePhoto= self.pic_resize(w,h,153,153,photo)  #Image模块下利用自己的方法进行尺寸缩放tkPhoto=ImageTk.PhotoImage(resizePhoto)  #把Image图改为tkinter类型图labelImg = tk.Label(self, image=tkPhoto)labelImg.pack()labelImg.config(image=tkPhoto)  #以下两句代码非常重要,是保证图在函数中可以被加载的途径labelImg.image = tkPhotolabelImg.pack()labelImg.place(x=50, y=100)#缩放图的尺寸def pic_resize(self,w, h, w_box, h_box, pil_image):  #参数分别为:w和h为原始尺寸,w_bow和h_box为希望尺寸,pil_image为原图f1 = 1.0 * w_box / w  # 1.0 forces float division in Python2f2 = 1.0 * h_box / hfactor = min([f1, f2])width = int(w * factor)height = int(h * factor)return pil_image.resize((width, height), Image.ANTIALIAS)if __name__ == '__main__':  #这句代码意思是该文件被直接运行时才会运行以下代码;要是作为模块被其他文件引用时,不运行以下代码root = Tk()  #定义一个tkinter类root; Tkinter为图形界面库root.title("随机点名")  #标题root.geometry('450x450')  #窗体尺寸root.geometry('+400+100')  #窗体距离屏幕边缘尺寸sw = RandomName(root)  #一个实例,调用自定义的RandomName类,把窗体root实例传到类中sw.name_label()#sw.pic_label(r'F:\PythonFiles\PycharmFile\picture\exc30.png')root.mainloop()  #使窗口保持

未解决问题:
1)按钮总是遮挡图,如何进行tkinter中的布局?
2)图形部分总是在相同位置后面的图形遮挡前面的,而并不是后面的替换前面的,该如何解决?

希望各位对代码进行改进,并@我分享,谢谢

pycharm随机点名(包含姓名、学号和图)相关推荐

  1. 轮播图、阅读注册协议、网页时钟、随机点名、小米搜索框、轮播图点击切换——web APIs练习

    目录 一.获取元素(DOM) 1. 随机轮播图案例 2. 阅读注册协议(定时器间歇函数的应用) 3. 轮播图定时器版 4. 网页时钟 二.事件基础(DOM) 1. 随机点名案例 2. 轮播图点击切换( ...

  2. * 完成随机点名案例;学生姓名都提前写在文件中;:每次敲回车,随机显示一个学生姓名,每人最多显示一次,所有人都显示完了就结束程序;

    import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOExce ...

  3. 定义一个学生信息结构体,包含姓名,学号,语文成绩、数学成绩,和英语成绩,定义结构体数组存放不同学生的信息,可以在终端录入学生的信息,在基础上添加一个计算平均值和按照平均值排序以及删除指定学号的学生信息

    1. 代码如下: 头文件  chx.h #include<stdio.h> #include<string.h>struct chx{char name[128];int sn ...

  4. 假设某专业有若干个班,每个班有若干学生,每个学生包含姓名和分数,这样构成一棵树,如图1所示。假设树中每个结点的name域均不相同,该树采用孩子兄弟链存储结构,其结点类型定义如下:

    假设某专业有若干个班,每个班有若干学生,每个学生包含姓名和分数,这样构成一棵树,如图1所示.假设树中每个结点的name域均不相同,该树采用孩子兄弟链存储结构,其结点类型定义如下: typedef st ...

  5. Java初学者作业——编写JAVA程序,在控制台中输入六位员工的姓名,通过随机点名方式,输出当选组长的员工姓名。

    返回本章节 返回作业目录 需求说明: 编写JAVA程序,在控制台中输入六位员工的姓名,通过随机点名方式,输出当选组长的员工姓名. 实现思路: (1)定义字符串类型的数组names,长度为6,用于存储六 ...

  6. 【MATLAB基础】创建一个包含十名学生姓名学号和各学生六个科目成绩的结构体,并对成绩数据进行简单处理,并对十名学生按照成绩排序

    程序解决问题描述: 首先创建一个包含十名学生姓名学号和各学生六个科目成绩的结构体,分别求出十名学生的总成绩和平均成绩,最后按照总成绩对十名学生进行排序,并在命令窗口依次打印出1-10名的学生的姓名. ...

  7. python随机点名程序 图形化_python写一个随机点名软件,python随机点名,最近有个随机点名软件...

    python写一个随机点名软件,python随机点名,最近有个随机点名软件 最近有个随机点名软件的需求,故写了一个,上代码:github地址# -*- coding: utf-8 -*-# @Time ...

  8. python随机点名程序 图形化,python写一个随机点名软件的实例

    最近有个随机点名软件的需求,故写了一个,上代码:github地址 # -*- coding: utf-8 -*- # @Time : 18-12-31 下午4:21 # @Author : Felix ...

  9. C语言实现课堂随机点名系统

    今天重温一下在学校时写的课程设计,复习一下在学校里学到的东西,同时也希望能够帮助到那些和我一样被课设所折磨的可怜人儿~ 文章目录 1.项目要求 2.项目功能的实现 函数一:将选择打开文件内容读入结构体 ...

  10. Tkinter模块GUI界面化编程实战(四)——随机点名小程序(含详解及完整源码、完整程序下载链接)

    [上期回顾:Tkinter模块GUI界面化编程实战(三)--2048小游戏]  这篇博客介绍了如何用Python Tkinter模块编写一个界面化的随机点名小程序,在博客下面有完整的源码,源码中有超详 ...

最新文章

  1. php使用memcache存储session
  2. 简述WinCE开发特性及忠告
  3. 免费报名!百度大脑开放日·互联网内容安全线上专场来袭
  4. mybatis分页查询
  5. 为什么判断 n 是否为质数只需除到开平方根就行了?(直接证明)
  6. Python中单个下划线“_”变量的目的是什么?
  7. 网络信息系统(NIS服务器)
  8. 作者:朱扬勇,复旦大学计算机科学技术学院教授、学术委员会主任,上海市数据科学重点实验室主任。...
  9. 三位数的茎叶图怎么看_人参怎么判断年份,这些点你要了解
  10. cssbefore图片大小_我可以在CSS:before /:after伪元素中更改图像的高度吗?
  11. java多线程在单例模式下是否需要同步
  12. 《统计学习方法》python代码资料
  13. maven安装教程(Idea)
  14. Autojs对接图灵机器人
  15. Spark——Spark Project Tungsten深入解析
  16. 隐私空间伪装计算机,隐私空间app(文件夹隐藏) 6.1.9 免root
  17. IIS发布 部署 ASP网站
  18. 十兆以太网、百兆以太网、千兆以太网、万兆以太网、光口、电口
  19. 去除字符串中所有的空格
  20. Linux 对整个系统备份和还原

热门文章

  1. RSA应用现状及应用于文件加密的分析
  2. 解题报告 之 UVA11572 Unique Snowflakes
  3. QGIS为什么不显示谷歌地图
  4. 数据可视化分析教学课件——FineBI实验册节选====产品销售分析及销售预警分析
  5. 能力与TOGAF9.1标准中战略规划、架构和项目组合的关系
  6. 计算机信息检索第三版pdf,计算机信息检索-浙江大学图书馆.PDF
  7. 换坑季-51Job前程无忧 Python爬虫
  8. 一个老程序员对刚上大学的准备立志搞程序的学弟学妹的忠告 .
  9. 呃,这是一个给自己的警醒吧
  10. JavaScript设计模式笔记(七)享元模式