今天,小編給大家去做一個詳細的介紹,介紹的內容是涉及到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:UsersgeDownloadsIMG_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.0n你可以在”添加姓名按鈕上輸入你要添加的名字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.0n你可以在”添加姓名按鈕上輸入你要添加的名字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:UsersgeDownloadsIMG_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()
綜上所述,這篇內容就給大家介紹到這里了,希望可以給大家帶來幫助。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/128425.html
摘要:今天就繼續給大家分享一個讀者粉絲投稿的,關于上課點名的實戰案例,一起來看看是如何實現的吧首先我們還是一起先來看看點名器實現的效果下面,我們開始介紹這款點名器的制作過程。 ...
摘要:示例代碼如下此示例中可以看出,當迭代器終止時,通過拋出異常告知迭代器已耗盡。但如果迭代器所指向的數據結構在其存在時發生了插入或刪除操作,則迭代器將可能失效。與的情形類似,對進行任何插入操作也將損壞迭代器。 花下貓語:之前說過,我對于編程語言跟其它學科的融合非常感興趣,但我還說漏了一點,就是我對于 Python 跟其它編程語言的對比學習,也很感興趣。所以,我一直希望能聚集一些有其它語言基...
摘要:處理和函數之間關系的程序稱為路由。模板引擎是由實現的是內置的模板語言參照設計思想設計的,跟差不多渲染模板默認情況下,在程序文件夾中的子文件夾中尋找模板。如果需要可在文件夾中使用子文件夾存放文件。 1 程序的基本結構 1.1初始化 所有Flask 程序都必須創建一個程序實例。Web 服務器使用一種名為Web 服務器網關接口(Web Server Gateway Interface,WSG...
摘要:裝飾器的使用符合了面向對象編程的開放封閉原則。三簡單的裝飾器基于上面的函數執行時間的需求,我們就手寫一個簡單的裝飾器進行實現。函數體就是要實現裝飾器的內容。類裝飾器的實現是調用了類里面的函數。類裝飾器的寫法比我們裝飾器函數的寫法更加簡單。 目錄 前言 一、什么是裝飾器 二、為什么要用裝飾器 ...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1983·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02