python写的点名器(内附源码)
抱歉,最近爷爷病了住院一个多月,很久没更新了。现在医院有空的时候就边敲代码边陪伴爷爷,感谢三连,感谢不离不弃的铁粉~mua~
前言:想起小学的时候老师想点名找小伙伴回答问题的时候,老师竟斥巨资买了个点名器。今日无聊便敲了敲小时候老师斥巨资买的点名器。
本人姓白,就取名小白点名器啦,嘿嘿
目录
代码包含:添加姓名、查看花名册、使用指南、随机抽取名字的功能(完整源码在最后)
主界面
添加姓名
查看花名册
使用指南
名字转动功能
完整代码
栓Q~~
代码包含:添加姓名、查看花名册、使用指南、随机抽取名字的功能(完整源码在最后)
主界面
定义主界面。使用“w+”模式创建test.txt文件(我添加了个背景图片,若不需要可省略)
#打开时预加载储存在test.txt文件中的花名册
namelist = []
with open("test.txt", "r") as f:for line in f.readlines():line = line.strip('\n')namelist.append(line)
win = Tk()
win.title('小白点名器')
win.geometry('500x300')
#定义画布,添加背景图片
canvas = Canvas(win,width=500,height=300)
img_obj = PhotoImage(file=r"C:\Users\ge\Downloads\IMG_202206307919_png.png") #需输入照片路径
image = canvas.create_image(250,0,anchor = "n" , image = img_obj)
canvas.pack()
a = StringVar()
b = StringVar()
b.set('开始')
#定义可变文本信息
Label1 = Label(win, textvariable=a, font=('黑体', 100)).place(y= 60 , x=65)
#定义四个按钮
Button1 = Button(win, textvariable=b, font=('等线', 30), command = zhuanzhuan).place(y=210,x = 190)
Button2 = Button(win, text = '添加姓名', font=('等线', 20), command = addname).place(x= 50,y =0)
Button3 = Button(win, text = '查看', font=('等线', 20), command = chakan).place(x= 230,y =0)
Button4 = Button(win, text = '指南', font=('等线', 20), command = zhinan).place(x= 360,y =0)
win.mainloop()
添加姓名
定义添加姓名界面,每添加一次姓名就保存到test.txt文件中,判断输入是否为空(添加提示框)、判断花名册是否为空。
#定义添加姓名界面
def addname():global Entry1window = Tk()window.title('姓名添加器')window.geometry('400x200+500+200')Label11 = Label(window, text = '请在下方输入你要添加的姓名', font=('黑体', 18), anchor='center').place(y=30, x=25)Entry1 = Entry(window, font=('等线', 30), width=70)Entry1.place(y=80, x=70, width=200, height=80)Button3 = Button(window, text = '确认', font=('等线', 18), command = addname1).place(x= 300,y =80, height=80)
#每添加一次姓名就保存到test.txt文件中
def addname1():global namelist #声明为全局变量实时更新if len(Entry1.get()) == 0:tkinter.messagebox.showinfo('提示', '姓名输入不能为空哦')else:if len(Entry1.get()) == 2:zhongjian = list(Entry1.get())[::1]zhongjian1 = zhongjian[0] + ' ' +zhongjian[1]if len(namelist) == 0:nam = zhongjian1else:nam = '\n' + zhongjian1else:if len(namelist) == 0:nam = str(Entry1.get())else:nam = '\n' + str(Entry1.get())with open("test.txt", "a") as f:f.write(nam)tip = '姓名:' + Entry1.get() + ' 添加成功'tkinter.messagebox.showinfo('提示', tip)print(nam)namelist = []with open("test.txt", "r") as f:for line in f.readlines():line = line.strip('\n')namelist.append(line)
查看花名册
这个比较简单,使用Text来显示字典内的信息即可
def chakan():window = Tk()window.title('花名册查看')window.geometry('350x200+500+200')console = Text(window, font=('等线', 11))console.place(y=20, x=35, width=280, height=170)console.insert(1.0,namelist)
使用指南
同上,使用Text显示
def zhinan():window = Tk()window.title('小白点名器使用指南')window.geometry('350x230+500+200')console = Text(window, font=('等线', 11))console.place(y=20, x=35, width=280, height=190)console.insert(1.0, ' 欢迎使用小白点名器1.0\n你可以在”添加姓名按钮上输入你要添加的名字\n你可以在”查看“按钮中查看花名册中所有的名字''\n你可以在此程序同级的名为”花名册.txt“的文件夹中直接批量添加、删减姓名(使用回车做分隔)\n--------------------------------\n''(指南之外)此程序在CSDN中已开源,欢迎访问我的博客:晋升阁\n需要合作的可加我微信:baijinge1137')
名字转动功能
判断“开始”、“停止”状态。定义线程。启用一个线程
#判断状态
def zhuanzhuan():if b.get() == '开始':b.set('停止')elif b.get() =="停止":b.set('开始')_thread.start_new_thread(xiancheng,()) #启用一个线程来转动姓名
#定义一个线程
def xiancheng():global xuanzhongwhile b.get()=='停止':try:xuanzhong = random.choice(namelist)a.set(xuanzhong)Label1.updata()#刷新数据time.sleep(0.3)#0.3秒刷新一次except:continuetime.sleep(0.3)a.set(xuanzhong)
完整代码
提示:我的项目是在主界面添加了背景图片的,若是不需要添加背景图片可删掉90-94行代码。若是需要添加背景图片的需注意路径地址是否正确
import random
import time
from tkinter import *
import _thread
import tkinter.messagebox
def zhuanzhuan():if b.get() == '开始':b.set('停止')elif b.get() =="停止":b.set('开始')_thread.start_new_thread(xiancheng,()) #启用一个线程来转动姓名def xiancheng():global xuanzhongwhile b.get()=='停止':try:xuanzhong = random.choice(namelist)a.set(xuanzhong)Label1.updata()time.sleep(0.3)except:continuetime.sleep(0.3)a.set(xuanzhong)def addname1():global namelist #声明为全局变量实时更新if len(Entry1.get()) == 0:tkinter.messagebox.showinfo('提示', '姓名输入不能为空哦')else:if len(Entry1.get()) == 2:zhongjian = list(Entry1.get())[::1]zhongjian1 = zhongjian[0] + ' ' +zhongjian[1]if len(namelist) == 0:nam = zhongjian1else:nam = '\n' + zhongjian1else:if len(namelist) == 0:nam = str(Entry1.get())else:nam = '\n' + str(Entry1.get())with open("test.txt", "a") as f:f.write(nam)tip = '姓名:' + Entry1.get() + ' 添加成功'tkinter.messagebox.showinfo('提示', tip)print(nam)namelist = []with open("test.txt", "r") as f:for line in f.readlines():line = line.strip('\n')namelist.append(line)def chakan():window = Tk()window.title('花名册查看')window.geometry('350x200+500+200')console = Text(window, font=('等线', 11))console.place(y=20, x=35, width=280, height=170)console.insert(1.0,namelist)def zhinan():window = Tk()window.title('小白点名器使用指南')window.geometry('350x230+500+200')console = Text(window, font=('等线', 11))console.place(y=20, x=35, width=280, height=190)console.insert(1.0, ' 欢迎使用小白点名器1.0\n你可以在”添加姓名按钮上输入你要添加的名字\n你可以在”查看“按钮中查看花名册中所有的名字''\n你可以在此程序同级的名为”花名册.txt“的文件夹中直接批量添加、删减姓名(使用回车做分隔)\n--------------------------------\n''(指南之外)此程序在CSDN中已开源,欢迎访问我的博客:晋升阁\n需要合作的可加我微信:baijinge1137')def addname():global Entry1window = Tk()window.title('姓名添加器')window.geometry('400x200+500+200')Label11 = Label(window, text = '请在下方输入你要添加的姓名', font=('黑体', 18), anchor='center').place(y=30, x=25)Entry1 = Entry(window, font=('等线', 30), width=70)Entry1.place(y=80, x=70, width=200, height=80)Button3 = Button(window, text = '确认', font=('等线', 18), command = addname1).place(x= 300,y =80, height=80)namelist = []
with open("test.txt", "r") as f:for line in f.readlines():line = line.strip('\n')namelist.append(line)
win = Tk()
win.title('小白点名器')
win.geometry('500x300')
canvas = Canvas(win,width=500,height=300)
img_obj = PhotoImage(file=r"C:\Users\ge\Downloads\IMG_202206307919_png.png") #背景图片路径,若不需要添加将85—88行删掉即可
image = canvas.create_image(250,0,anchor = "n" , image = img_obj)
canvas.pack()
a = StringVar()
b = StringVar()
b.set('开始')
Label1 = Label(win, textvariable=a, font=('黑体', 100)).place(y= 60 , x=65)
Button1 = Button(win, textvariable=b, font=('等线', 30), command = zhuanzhuan).place(y=210,x = 190)
Button2 = Button(win, text = '添加姓名', font=('等线', 20), command = addname).place(x= 50,y =0)
Button3 = Button(win, text = '查看', font=('等线', 20), command = chakan).place(x= 230,y =0)
Button4 = Button(win, text = '指南', font=('等线', 20), command = zhinan).place(x= 360,y =0)
win.mainloop()
以上就是今天的全部内容,若是你get到了新的知识点,若是代码帮助到了你,麻烦三连~~
不定期更新~~
栓Q~~
python写的点名器(内附源码)相关推荐
- 用Python写了个绝地求生(附源码)
作者:LookOutTheBush https://juejin.cn/post/7232253274056785957 仅做学习交流,非盈利 一.概述 1.1 效果 总的来说,这种方式是通过图像识别 ...
- web python 自动化是什么_Selenium 凭什么成为 Web 自动化测试的首选?(内附源码)...
原标题:Selenium 凭什么成为 Web 自动化测试的首选?(内附源码) 自动化 · 工具 1.QTP QTP是一个商业化的功能测试工具,收费,支持web,桌面自动化测试. 2. Selenium ...
- wallpaper代码_五行Python代码自动换你的电脑桌面壁纸(内附源码和exe)
很多行友问行哥,Python能不能自动更换电脑壁纸呀,今天它来了 只需要一行代码,指定图片地址即可更换电脑桌面.加上壁纸文件夹路径,让你随机更换电脑桌面,带来不期而遇的新鲜.使用爬虫技术,自动下载壁纸 ...
- 疯狂python讲义视频 百度云-疯狂Python讲义 PDF高清版附源码
内容简介 本书全面,深入地介绍了Python编程的相关内容,大致可分为四个部分.*系统部分介绍了Python的基本语法结构,函数编程,类和对象,模块和包,异常处理等: 第二部分主要介绍Python常用 ...
- 网页爬虫python代码_《用python写网络爬虫》完整版+源码
原标题:<用python写网络爬虫>完整版+源码 <用python写网络爬虫>完整版+附书源码 本书讲解了如何使用Python来编写网络爬虫程序,内容包括网络爬虫简介,从页面中 ...
- Selenium 凭什么成为 Web 自动化测试的首选?(内附源码)
<自动化>工具 1.QTP QTP是一个商业化的功能测试工具,收费,支持web,桌面自动化测试. 2. Selenium(文章重点讲) Selenium是一个开源的web自动化测试工具,免 ...
- CTP接口开发案例(内附源码)
CTP接口开发(内附源码) 提示:在看本博客之前建议先阅读上期所官方的开发文档(SimNow官网中去下载CTP接口文件),然后在SimNow官网注册模拟账号. 提示:股票CTP接口和期货CTP接口类似 ...
- Python实现飞机大战-第二部分(附源码、素材、超详细教程)
飞机大战第二部分 1.前言 2.飞机射击 2.1.添加子弹的相关设置 2.2.创建文件bullet.py 2.3.修改game_functions.py 2.4.修改mian.py 2.5.射击效果 ...
- 熬夜整理出了70个清华大佬都在用的Python经典练手项目【附源码】
我们都知道,不管学习那门语言最终都要做出实际的东西来,而对于编程而言,这个实际的东西当然就是项目啦,不用我多说大家都知道学编程语言做项目的重要性. 于是,小编熬了几个通宵,终于整理出了70个清华大佬都 ...
- 高分毕设基于JAVA的仓库管理系统项目(内附源码)
一.高分毕设基于JAVA的仓库管理系统项目(内附源码) 项目简介:(源码免费下载链接如下) 基于JAVA的仓库管理系统项目源码.zip-Java文档类资源-CSDN下载 在经过多家公司上线运行后,为了 ...
最新文章
- mysql和SQLYog工具使用
- 【Spring】- Bean生命周期
- LruCache:从网络加载图片缓存实例
- 案例展示快做好了(更新)
- 【2018.3.24】模拟赛之一-ssl2545 奇数【水题】
- java面试题23 牛客ArrayLists和LinkedList的区别,下述说法正确的有?
- 【转载】Kerberos原理--经典对话
- linux中如何自定义命令行,linux终端颜色和命令行自定义
- 关于解决Server Tomcat v9.0 Server at localhost failed to start的问题
- java 2和java有什么区别
- 素数筛(快速筛)-爱拉托斯特尼筛法+欧拉筛
- 如何把HTML背景图片变透明,photoshop怎样把图片背景变透明
- WIN10系统开机一个WIFI都找不到,网络适配器里没有WLAN驱动,连接不了网络问题【耗时3天测试10多种方法】
- linux tc取消网卡流量限制,Linux高级流量控制tc使用
- 学金融离不开计算机,如何看待学计算机的被学金融的鄙视
- “贴吧之父”俞军20年的方法论:顶级与平庸的差距有多大?
- 斐讯音箱控制扫地机器人_斐讯扫地机器人app
- vue获取div高度
- nginx代理ajax跨域请求
- 【10月月赛T9】射命丸文