抱歉,最近爷爷病了住院一个多月,很久没更新了。现在医院有空的时候就边敲代码边陪伴爷爷,感谢三连,感谢不离不弃的铁粉~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写的点名器(内附源码)相关推荐

  1. 用Python写了个绝地求生(附源码)

    作者:LookOutTheBush https://juejin.cn/post/7232253274056785957 仅做学习交流,非盈利 一.概述 1.1 效果 总的来说,这种方式是通过图像识别 ...

  2. web python 自动化是什么_Selenium 凭什么成为 Web 自动化测试的首选?(内附源码)...

    原标题:Selenium 凭什么成为 Web 自动化测试的首选?(内附源码) 自动化 · 工具 1.QTP QTP是一个商业化的功能测试工具,收费,支持web,桌面自动化测试. 2. Selenium ...

  3. wallpaper代码_五行Python代码自动换你的电脑桌面壁纸(内附源码和exe)

    很多行友问行哥,Python能不能自动更换电脑壁纸呀,今天它来了 只需要一行代码,指定图片地址即可更换电脑桌面.加上壁纸文件夹路径,让你随机更换电脑桌面,带来不期而遇的新鲜.使用爬虫技术,自动下载壁纸 ...

  4. 疯狂python讲义视频 百度云-疯狂Python讲义 PDF高清版附源码

    内容简介 本书全面,深入地介绍了Python编程的相关内容,大致可分为四个部分.*系统部分介绍了Python的基本语法结构,函数编程,类和对象,模块和包,异常处理等: 第二部分主要介绍Python常用 ...

  5. 网页爬虫python代码_《用python写网络爬虫》完整版+源码

    原标题:<用python写网络爬虫>完整版+源码 <用python写网络爬虫>完整版+附书源码 本书讲解了如何使用Python来编写网络爬虫程序,内容包括网络爬虫简介,从页面中 ...

  6. Selenium 凭什么成为 Web 自动化测试的首选?(内附源码)

    <自动化>工具 1.QTP QTP是一个商业化的功能测试工具,收费,支持web,桌面自动化测试. 2. Selenium(文章重点讲) Selenium是一个开源的web自动化测试工具,免 ...

  7. CTP接口开发案例(内附源码)

    CTP接口开发(内附源码) 提示:在看本博客之前建议先阅读上期所官方的开发文档(SimNow官网中去下载CTP接口文件),然后在SimNow官网注册模拟账号. 提示:股票CTP接口和期货CTP接口类似 ...

  8. Python实现飞机大战-第二部分(附源码、素材、超详细教程)

    飞机大战第二部分 1.前言 2.飞机射击 2.1.添加子弹的相关设置 2.2.创建文件bullet.py 2.3.修改game_functions.py 2.4.修改mian.py 2.5.射击效果 ...

  9. 熬夜整理出了70个清华大佬都在用的Python经典练手项目【附源码】

    我们都知道,不管学习那门语言最终都要做出实际的东西来,而对于编程而言,这个实际的东西当然就是项目啦,不用我多说大家都知道学编程语言做项目的重要性. 于是,小编熬了几个通宵,终于整理出了70个清华大佬都 ...

  10. 高分毕设基于JAVA的仓库管理系统项目(内附源码)

    一.高分毕设基于JAVA的仓库管理系统项目(内附源码) 项目简介:(源码免费下载链接如下) 基于JAVA的仓库管理系统项目源码.zip-Java文档类资源-CSDN下载 在经过多家公司上线运行后,为了 ...

最新文章

  1. mysql和SQLYog工具使用
  2. 【Spring】- Bean生命周期
  3. LruCache:从网络加载图片缓存实例
  4. 案例展示快做好了(更新)
  5. 【2018.3.24】模拟赛之一-ssl2545 奇数【水题】
  6. java面试题23 牛客ArrayLists和LinkedList的区别,下述说法正确的有?
  7. 【转载】Kerberos原理--经典对话
  8. linux中如何自定义命令行,linux终端颜色和命令行自定义
  9. 关于解决Server Tomcat v9.0 Server at localhost failed to start的问题
  10. java 2和java有什么区别
  11. 素数筛(快速筛)-爱拉托斯特尼筛法+欧拉筛
  12. 如何把HTML背景图片变透明,photoshop怎样把图片背景变透明
  13. WIN10系统开机一个WIFI都找不到,网络适配器里没有WLAN驱动,连接不了网络问题【耗时3天测试10多种方法】
  14. linux tc取消网卡流量限制,Linux高级流量控制tc使用
  15. 学金融离不开计算机,如何看待学计算机的被学金融的鄙视
  16. “贴吧之父”俞军20年的方法论:顶级与平庸的差距有多大?
  17. 斐讯音箱控制扫地机器人_斐讯扫地机器人app
  18. vue获取div高度
  19. nginx代理ajax跨域请求
  20. 【10月月赛T9】射命丸文

热门文章

  1. 浙江江西公费出国游黑幕调查
  2. 微信公众平台生成二维码海报是如何做到的?
  3. 华为HMS对谷歌GMS,有多大胜算?
  4. 以太坊白皮书(中英对照版)
  5. 什么是基类,什么是父类
  6. 通信专业实务(四)——互联网
  7. 咬文嚼字的有趣例子_十个你可能没听过的成语,藏着十个有趣的故事
  8. 键盘驱动系列---JIURL键盘驱动 3
  9. 致广大而尽精微,极高明而道中庸
  10. DNA sequence HDU 1560