使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)


Posted in Python onOctober 12, 2020

上一篇我们写了怎么将xmind转换成想要的excel格式,这篇再讲一下用Python自带的tkinter库设计一个简单的gui界面,让我们的xmind路径,用例版本执行等都通过这个gui界面来输入,生成我们需要的excel文件。

Python要生成gui,库还是比较多的比如wxpython,这个我看了下,感觉比较难懂,毕竟只是设计一个比较简单的gui界面,所以就使用了tkinter库,感觉这个还是比较方便易懂的,大家可以在这里学习tkinter库http://c.biancheng.net/python/tkinter/

如果只是想做个简单的gui界面,直接想用什么就找什么就行了 ,我这个界面只用到了askopenfilename 和showinfo这两个功能,askopenfilename 是用来选择获取Windows文件路径的,showinfo是用来弹出提示框的,另外一个注意点就是 “self.module = tk.StringVar() self.secEntry = tk.Entry(self,textvariable = self.module)”,必须要这样写才能获取到输入框的值,刚开始我不知道这样获取,也是找了半天才找到,from xmindtoxls import xmind_to_xls是上一篇写的生成excel的文件,可以把两个文件放到一个文件夹下

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库,先pip安装一下,然后进入相应的Python文件所在的文件夹下,输入命令pyinstaller -Ftkintertoxls.py -pxmindtoxls.py 就可以生成exe可执行文件了,这样这个xmind转xls的打包工具就完成了。注意电脑管家可能会把exe文件删除掉,设置为安全就可以了。

到此这篇关于使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)的文章就介绍到这了,更多相关Python gui界面制作及打包成exe内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python求斐波那契数列示例分享
Feb 14 Python
python实现的登录和操作开心网脚本分享
Jul 09 Python
Python3.2中的字符串函数学习总结
Apr 23 Python
尝试使用Python多线程抓取代理服务器IP地址的示例
Nov 09 Python
python+selenium实现登录账户后自动点击的示例
Dec 22 Python
解决python给列表里添加字典时被最后一个覆盖的问题
Jan 21 Python
django 邮件发送模块smtp使用详解
Jul 22 Python
python3.7实现云之讯、聚合短信平台的短信发送功能
Sep 26 Python
Python实现基于socket的udp传输与接收功能详解
Nov 15 Python
Pytorch中Softmax与LogSigmoid的对比分析
Jun 05 Python
Python 数据可视化之Matplotlib详解
Nov 02 Python
Python学习之时间包使用教程详解
Mar 21 Python
使用Python将xmind脑图转成excel用例的实现代码(一)
Oct 12 #Python
使用python把xmind转换成excel测试用例的实现代码
Oct 12 #Python
Python Sqlalchemy如何实现select for update
Oct 12 #Python
浅析PyCharm 的初始设置(知道)
Oct 12 #Python
Pandas替换及部分替换(replace)实现流程详解
Oct 12 #Python
Django windows使用Apache实现部署流程解析
Oct 12 #Python
详解Django ORM引发的数据库N+1性能问题
Oct 12 #Python
You might like
在PHP3中实现SESSION的功能(二)
2006/10/09 PHP
在PHP中养成7个面向对象的好习惯
2010/01/28 PHP
php var_export与var_dump 输出的不同
2013/08/09 PHP
图解找出PHP配置文件php.ini的路径的方法
2014/08/20 PHP
CodeIgniter多语言实现方法详解
2016/01/20 PHP
用JavaScript将从数据库中读取出来的日期型格式化为想要的类型。
2009/08/15 Javascript
JavaScript中SQL语句的应用实现
2010/05/04 Javascript
一次失败的jQuery优化尝试小结
2011/02/06 Javascript
Javascript的getYear、getFullYear、getUTCFullYear异同分享
2011/11/30 Javascript
Bootstrap 附加导航(Affix)插件实例详解
2016/06/01 Javascript
关于数据与后端进行交流匹配(点亮星星)
2016/08/03 Javascript
jQuery右下角悬浮广告实例
2016/10/17 Javascript
JS常见简单正则表达式验证功能小结【手机,地址,企业税号,金额,身份证等】
2017/01/22 Javascript
JavaScript数据结构之双向链表定义与使用方法示例
2017/10/27 Javascript
VUE-cli3使用 svg-sprite-loader
2018/10/20 Javascript
JS解惑之Object中的key是有序的么
2019/05/06 Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
2020/06/02 Javascript
详解JS函数防抖
2020/06/05 Javascript
在Apache服务器上同时运行多个Django程序的方法
2015/07/22 Python
python3 发送任意文件邮件的实例
2018/01/23 Python
详解用Python练习画个美队盾牌
2019/03/23 Python
Django中的用户身份验证示例详解
2019/08/07 Python
对Python 中矩阵或者数组相减的法则详解
2019/08/26 Python
python使用socket实现的传输demo示例【基于TCP协议】
2019/09/24 Python
基于TensorBoard中graph模块图结构分析
2020/02/15 Python
高清安全摄像头系统:Lorex Technology
2018/07/20 全球购物
台湾专柜女包:KINAZ
2019/12/26 全球购物
茱莉蔻美国官网:Jurlique美国
2020/11/24 全球购物
中学生获奖感言
2014/02/04 职场文书
渔夫的故事教学反思
2014/02/14 职场文书
《白鹅》教学反思
2014/04/13 职场文书
学校节能减排方案
2014/06/13 职场文书
学校四风问题对照检查材料思想汇报
2014/09/26 职场文书
乡镇领导班子四风对照检查材料
2014/09/27 职场文书
2014初中数学教研组工作总结
2014/12/19 职场文书
Pytest中skip skipif跳过用例详解
2021/06/30 Python