文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

基于Python怎么编写一个点名器

2023-07-02 14:30

关注

这篇文章主要介绍“基于Python怎么编写一个点名器”,在日常操作中,相信很多人在基于Python怎么编写一个点名器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”基于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 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怎么编写一个点名器”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯