世界今日讯!基于Python编写一个点名器的示例代码
(资料图片仅供参考)
目录
前言主界面添加姓名查看花名册使用指南名字转动功能完整代码前言
想起小学的时候老师想点名找小伙伴回答问题的时候,老师竟斥巨资买了个点名器。今日无聊便敲了敲小时候老师斥巨资买的点名器。
本人姓白,就取名小白点名器啦,嘿嘿
代码包含:添加姓名、查看花名册、使用指南、随机抽取名字的功能(完整源码在最后)
主界面
定义主界面。使用“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 Entry1 window = 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 = zhongjian1 else: nam = "\n" + zhongjian1 else: 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 xuanzhong while b.get()=="停止": try: xuanzhong = random.choice(namelist) a.set(xuanzhong) Label1.updata()#刷新数据 time.sleep(0.3)#0.3秒刷新一次 except: continue time.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 xuanzhong while b.get()=="停止": try: xuanzhong = random.choice(namelist) a.set(xuanzhong) Label1.updata() time.sleep(0.3) except: continue time.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 = zhongjian1 else: nam = "\n" + zhongjian1 else: 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 Entry1 window = 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()
以上就是基于Python编写一个点名器的示例代码的详细内容,更多关于Python点名器的资料请关注脚本之家其它相关文章!
X 关闭
X 关闭
- 1充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 2好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 3名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?
- 4亚马逊云科技成立量子网络中心致力解决量子计算领域的挑战
- 5京东绿色建材线上平台上线 新增用户70%来自下沉市场
- 6网红淘品牌“七格格”chuu在北京又开一家店 潮人新宠chuu能红多久
- 7市场竞争加剧,有车企因经营不善出现破产、退网、退市
- 8北京市市场监管局为企业纾困减负保护经济韧性
- 9市场监管总局发布限制商品过度包装标准和第1号修改单
- 10油价又变了!部分地区92号汽油进入“9元时代”