使用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中使用item()方法遍历字典的例子
Aug 26 Python
python清除字符串里非字母字符的方法
Jul 02 Python
python图片验证码生成代码
Jul 02 Python
MAC中PyCharm设置python3解释器
Dec 15 Python
Python并行分布式框架Celery详解
Oct 15 Python
在Pycharm中项目解释器与环境变量的设置方法
Oct 29 Python
Python饼状图的绘制实例
Jan 15 Python
Python设计模式之抽象工厂模式原理与用法详解
Jan 15 Python
python每5分钟从kafka中提取数据的例子
Dec 23 Python
基于python实现FTP文件上传与下载操作(ftp&sftp协议)
Apr 01 Python
python中添加模块导入路径的方法
Feb 03 Python
Python数据可视化之Seaborn的安装及使用
Apr 19 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
PHP 七大优势分析
2009/06/23 PHP
PHP实现中文圆形印章特效
2015/06/19 PHP
通过修改配置真正解决php文件上传大小限制问题(nginx+php)
2015/09/23 PHP
PHP中的session安全吗?
2016/01/22 PHP
TP5框架使用QueryList采集框架爬小说操作示例
2020/03/26 PHP
jQuery+.net实现浏览更多内容(改编php版本)
2013/03/28 Javascript
javascript中的取反再取反~~没有意义
2014/04/06 Javascript
javascript setinterval 的正确语法如何书写
2014/06/17 Javascript
跟我学习javascript的arguments对象
2015/11/16 Javascript
JavaScript中Number对象的toFixed() 方法详解
2016/09/02 Javascript
手机浏览器 后退按钮强制刷新页面方法总结
2016/10/09 Javascript
jQuery中ajax错误调试分析
2016/12/01 Javascript
原生js实现淘宝购物车功能
2020/06/23 Javascript
使用 Node.js 对文本内容分词和关键词抽取
2017/05/27 Javascript
浅谈vue-lazyload实现的详细过程
2017/08/22 Javascript
vue动态禁用控件绑定disable的例子
2019/10/28 Javascript
jQuery 判断元素是否存在然后按需加载内容的实现代码
2020/01/16 jQuery
VUE项目实现主题切换的多种方法
2020/11/26 Vue.js
vc6编写python扩展的方法分享
2014/01/17 Python
详解Django框架中的视图级缓存
2015/07/23 Python
Python部署web开发程序的几种方法
2017/05/05 Python
Java实现的执行python脚本工具类示例【使用jython.jar】
2018/03/29 Python
numpy 进行数组拼接,分别在行和列上合并的实例
2018/05/08 Python
python顺序执行多个py文件的方法
2019/06/29 Python
Python 异常处理Ⅳ过程图解
2019/10/18 Python
pytorch 实现tensor与numpy数组转换
2019/12/27 Python
一文了解python 3 字符串格式化 F-string 用法
2020/03/04 Python
python 连续不等式语法糖实例
2020/04/15 Python
python爬虫实例之获取动漫截图
2020/05/31 Python
python里的单引号和双引号的有什么作用
2020/06/17 Python
使用py-spy解决scrapy卡死的问题方法
2020/09/29 Python
Python 实现PS滤镜的旋涡特效
2020/12/03 Python
工商管理本科毕业生求职信范文
2013/10/05 职场文书
师范大学毕业自我鉴定
2013/11/21 职场文书
小学课外阅读总结
2014/07/09 职场文书
艺术节开幕词
2015/01/28 职场文书