电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
ImageVerifierCode 换一换
首页 金锄头文库 > 资源分类 > DOCX文档下载
分享到微信 分享到微博 分享到QQ空间

Python tkinter实现点名小程序

  • 资源ID:597195901       资源大小:116.38KB        全文页数:8页
  • 资源格式: DOCX        下载积分:25金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要25金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

Python tkinter实现点名小程序

Python tkinter实现点名小程序数据分析当过老师的都知道,一个班级会有一本花名册,既然是点名小程序,那么肯定是需要学生的姓名的,为了防止班上有重名的同学,一般还会带上学号。通常来说,花名册会使用 Excel 表格进行存储,因此这里引入 pandas 库进行读取,需要先安装 pandas 库:pip install pandaspip install openpyxl接下来以下图的数据 demo.xlsx 为例进行分析与代码实现:1、先读取 Excel 中的数据:import pandas as pdpd.read_excel("demo.xlsx")运行结果:2、将整体数据转换成迭代数据:df = pd.read_excel("demo.xlsx")for idx, row in df.iterrows(): print(row)运行结果:3、获取每一行的 “序号” 值与 “姓名” 值:for idx, row in df.iterrows(): print(f"row'序号' row'姓名'")这里可能会出现这么一个问题,传进来的 Excel 表中,没有 “序号” 或者 “姓名” 的列名,那么按照我们的逻辑,不符合我们模板要求的 Excel,我们不应该让他继续执行下去,所以这里使用 assert 进行判断:columns = df.columns.values.tolist()assert "序号" in columns, "需要一个名为 “序号” 的列表!"assert "姓名" in columns, "需要一个名为 “姓名” 的列表!"上述代码中的 df.columns.values.tolist() 是获取当前读取的 Excel 表的所有列表名称,这里的运行结果就是 '序号', '班级', '姓名', '.'。整合上述代码def deal_data(filepath): df = pd.read_excel(filepath) columns = df.columns.values.tolist() assert "序号" in columns, "需要一个名为 “序号” 的列表!" assert "姓名" in columns, "需要一个名为 “姓名” 的列表!" return f"row'序号' row'姓名'" for idx, row in df.iterrows()构建界面我们使用 tkinter 来构建可视化界面,引入 tkinter 库:import tkinter as tk接下来我们就开始构建 GUI 界面了。1、初始化一个窗口;window = tk.Tk()window.mainloop()运行结果:2、创建文字显示区域;var = tk.StringVar(value="即 将 开 始")show_label = tk.Label(window, textvariable=var)show_label.pack()在上述代码中,通过 tk.StringVar 方法创建一个字符串变量 var,并将其与标签对象 show_label 进行绑定,然后使用 pack() 方法将该标签放置在窗口中,以便显示在界面上。运行结果:3、创建 “开始” 与 “结束” 按钮;btn_start = tk.Button(window, text='开始')btn_start.pack()btn_end = tk.Button(window, text='结束')btn_end.pack()运行结果:4、实现数据滚动功能;data = f"row'序号' row'姓名'" for idx, row in df.iterrows()def lottery_roll(string: tk.StringVar): string.set(random.choice(data) window.after(50, lottery_roll, string)在上述代码中,data 数据来自于读取 Excel 表格,lottery_roll 实现了数据滚动效果,其原理是通过 string.set(random.choice(data) 这行代码从 data 中随机选择一个元素,并将其设置为 string 的值,然后使用 window.after() 方法在50毫秒之后继续调用 lottery_roll 函数,再次随机选择数据并更新界面。最后将 lottery_roll 函数绑定到 “开始” 按钮上,btn_start = tk.Button(window, text='开始', command=lambda: lottery_roll(var)运行结果:5、实现滚动停止功能;前面我们已经实现了数据滚动,但我们还要让滚动停止,得出最后的结果,那么我们应该如何下手呢?当然是从 window.after() 方法入手,因为它是实现数据滚动的关键,自然也是滚动停止的关键,我们可以设置一个标志位来判断是否还要继续执行 window.after() 方法,代码如下所示:大家可能发现程序运行时,程序并不在屏幕中间,这对一些用户来说,可能是不好的使用体验,因此我们可以在初始化的时候进行设置,代码如下所示:整合上述代码优化进阶在上述功能实现中,我们在代码里写死了文件路径,这对于程序的广泛适用性是很不友好的,因此,我们需要实现灵活获取文件并解析数据的功能。1、初始化窗口;window = tk.Tk()2、创建文件路径输入框;运行结果:3、创建 “上传文件” 和 “解析数据” 按钮;运行结果:4、实现文件上传功能;在上述代码中,filedialog.askopenfilename() 方法弹出一个文件选择对话框供用户选择文件,并且通过 filetypes 指定了可以选择的文件类型为 Excel 文件(.xls 或 .xlsx 文件)。运行结果:5、实现数据解析功能;读取 Excel 的功能实现参照前面讲过的 deal_data() 方法,然后在数据成功解析之后,销毁当前界面,跳转至点名界面。同时,还需要对解析过程中的异常进行捕获,如果出现异常,则提示用户相关信息。运行结果:整合上述代码后记在本文中,我们一起学习了如何利用 Python 中的 tkinter 模块构建一个简单的点名小程序。通过数据分析、构建界面和优化进阶这三个部分,我们逐步完成了这个项目。从中我们不仅掌握了 Python GUI 编程的基础知识,还了解了如何优化程序以提高用户体验。

注意事项

本文(Python tkinter实现点名小程序)为本站会员(知***)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.