Python tkinter GUI界面设计与PyInstaller打包exe实战(二)

江岸
江岸
发布时间:2026-10-14| 5人浏览过
原创

本文详解如何使用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的相关内容,请搜索本站历史文章或继续浏览后续文章,感谢大家的支持。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。