前言
主界面
添加姓名
查看花名冊
使用指南
名字轉動功能
完整代碼
前言想起小學的時候老師想點名找小伙伴回答問題的時候,老師竟斥巨資買了個點名器。今日無聊便敲了敲小時候老師斥巨資買的點名器。
本人姓白,就取名小白點名器啦,嘿嘿
代碼包含:添加姓名、查看花名冊、使用指南、隨機抽取名字的功能(完整源碼在最後)
主界面定義主界面。使用“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 randomimport timefrom tkinter import *import _threadimport tkinter.messageboxdef 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點名器的資料請關注軟件開發網其它相關文章!
前言 嗨喽,大家好呀~這裡是愛看美女的茜茜吶技術賦能,Use
Bubble Sort: It is an algorith
When carrying out interface te