Python tkinter GUI界面设计与PyInstaller打包exe实战(二)
本文详解如何使用Python内置tkinter库构建简易GUI界面,实现Xmind路径选择与Excel导出功能。重点解析StringVar获取输入值的关键代码,并演示利用PyInstaller将Python脚本打包为独立exe可执行文件的全过程,包含解决杀毒软件误报的实用建议。
GUI界面设计目标与背景
在前一篇文章中,我们介绍了如何将Xmind文件转换为指定格式的Excel。本篇将继续讲解如何利用Python自带的tkinter库设计一个简易的GUI界面,通过该界面输入Xmind文件路径、用例版本等信息,最终生成所需的Excel文件。
tkinter库的选择与优势
Python中用于生成GUI的库众多,例如wxPython。经过对比,wxPython的学习曲线较陡,而我们的需求仅是设计一个简单的GUI界面,因此选择tkinter库更为便捷易懂。读者可通过相关教程深入学习tkinter库的使用。
核心功能实现与代码关键点
若仅需制作简单GUI,可根据功能需求直接调用相应模块。本界面主要使用了askopenfilename和showinfo两个功能:前者用于选择并获取Windows文件路径,后者用于弹出提示信息。此外,需注意通过StringVar和Entry控件结合的方式(如self.module = tk.StringVar()及self.secEntry = tk.Entry(self, textvariable=self.module))才能正确获取输入框的值。此前未掌握此方法时曾花费较多时间查找解决方案。将上一篇生成的Excel文件模块from xmindtoxls import xmind_to_xls与本GUI脚本置于同一文件夹下即可运行。
GUI界面代码实现
import tkinter as tk
from tkinter.filedialog import askopenfilename
from xmindtoxls import xmind_to_xls
from tkinter.messagebox import showinfo
import re
# 定义MainUI类表示应用/窗口,继承Frame类
class MainUI(tk.Frame):
# Application构造函数,master为窗口的父控件
def __init__(self, master=None):
# 初始化Application的Frame部分
tk.Frame.__init__(self, master)
# 显示窗口,并使用grid布局
self.grid()
self.path = tk.StringVar()
# 创建控件
self.createWidgets()
def selectPath(self):
'''选择要转换成excel的xmind地址'''
self.path_ = askopenfilename()
self.path.set(self.path_)
# 创建控件
def createWidgets(self):
'''生成gui界面'''
# 创建一个标签,输出要显示的内容
self.firstLabel = tk.Label(self, text="目标路径")
# 设定使用grid布局
self.firstLabel.grid(row = 0, column = 0)
self.firstEntry = tk.Entry(self,textvariable = self.path)
self.firstEntry.grid(row=0, column=1)
# 创建一个按钮,用来触发answer方法
self.clickButton = tk.Button(self, text="路径选择", command=self.selectPath)
# 设定使用grid布局
self.clickButton.grid(row = 0, column = 2)
# 创建一个标签,输入模块
self.secLabel = tk.Label(self, text="模块")
# 设定使用grid布局
self.secLabel.grid(row=1, column=0)
self.module = tk.StringVar()
self.secEntry = tk.Entry(self,textvariable = self.module)
self.secEntry.grid(row=1, column=1)
# 创建一个标签,输入版本号
self.trLabel = tk.Label(self, text="版本号")
# 设定使用grid布局
self.trLabel.grid(row=2, column=0)
self.buildnum = tk.StringVar()
self.trEntry = tk.Entry(self,textvariable = self.buildnum)
self.trEntry.grid(row=2, column=1)
# 创建一个标签,输入执行人
self.fourLabel = tk.Label(self, text="执行人")
# 设定使用grid布局
self.fourLabel.grid(row=3, column=0)
self.owner = tk.StringVar()
self.fourEntry = tk.Entry(self,textvariable = self.owner)
self.fourEntry.grid(row=3, column=1)
# 创建一个提交按钮,用来触发提交方法,获取值
self.clickButton = tk.Button(self, text="提交",command=self.getvalue)
# 设定使用grid布局
self.clickButton.grid(row=4, column=1)
def getvalue(self):
'''获取输入的值,并执行转换excel函数'''
global way,module,buildnum,owner
way = self.path.get()
module = self.module.get()
buildnum = self.buildnum.get()
owner = self.owner.get()
print(way,module,buildnum,owner)
self.regvalue = '.*\.xmind$'
self.xmind_reg = re.match(self.regvalue,way )
if self.xmind_reg:
# xmind转换成xls
self.xmind_to_xls = xmind_to_xls()
self.xmind_to_xls.write_excel(way,module,buildnum,owner)
else:
showinfo(title='提示',message='请选择正确的xmind文件,谢谢!')
# 创建一个MainUI对象
app = MainUI()
# 设置窗口标题
app.master.title('「xmind转xls」')
# 设置窗体大小
app.master.geometry('400x200')
# 主循环开始
app.mainloop()
使用PyInstaller打包exe
打包工具选用PyInstaller库。首先通过pip安装该库,随后进入Python文件所在目录,执行命令pyinstaller -F tkintertoxls.py -p xmindtoxls.py,即可生成exe可执行文件,至此完成Xmind转Excel打包工具的构建。需注意,部分电脑管家类安全软件可能会误删生成的exe文件,将其添加至信任区或设为安全即可解决。
总结与注意事项
至此,关于使用Python tkinter库制作简易GUI界面及打包成exe的操作方法(二)介绍完毕。如需了解更多Python GUI界面制作及打包exe的相关内容,请搜索本站历史文章或继续浏览后续文章,感谢大家的支持。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













