Maison >développement back-end >Tutoriel Python >Comment écrire un appelant basé sur Python
Définissez l'interface principale. Utilisez le mode "w+" pour créer le fichier test.txt (j'ai ajouté une image d'arrière-plan, vous pouvez l'omettre si vous n'en avez pas besoin)
#打开时预加载储存在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()
Définissez l'interface d'ajout de nom. Chaque fois qu'un nom est ajouté, il l'est. enregistré dans le fichier test.txt. Juge Vérifiez si l'entrée est vide (ajoutez une boîte de dialogue) et déterminez si la liste est vide.
#定义添加姓名界面 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)
C'est relativement simple, utilisez simplement le texte pour afficher les informations dans le dictionnaire
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)
Idem que ci-dessus, utilisez le texte pour afficher
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')
Juge "start" et état "stop". Définir les fils de discussion. Activer un fil de discussion
#判断状态 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)
Si vous n'avez pas besoin d'ajouter une image d'arrière-plan à l'interface principale, vous pouvez supprimer les lignes 90 à 94 du code. Si vous devez ajouter une image d'arrière-plan, veuillez vérifier si l'adresse du chemin est correcte
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()
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!