使用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单元测试框架unittest使用方法讲解
Apr 13 Python
在Python中操作字符串之startswith()方法的使用
May 20 Python
python 专题九 Mysql数据库编程基础知识
Mar 16 Python
Python中的is和==比较两个对象的两种方法
Sep 06 Python
Python面向对象编程基础解析(一)
Oct 26 Python
python的turtle库使用详解
May 10 Python
python中的单引号双引号区别知识点总结
Jun 23 Python
python实现tail -f 功能
Jan 17 Python
Django中的AutoField字段使用
May 18 Python
Django model.py表单设置默认值允许为空的操作
May 19 Python
Python可以实现栈的结构吗
May 27 Python
python xlsxwriter模块的使用
Dec 24 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
通过ODBC连接的SQL SERVER实例
2006/10/09 PHP
laravel 如何实现引入自己的函数或类库
2019/10/15 PHP
JavaScript实现动态增加文件域表单
2009/02/12 Javascript
jQuery队列控制方法详解queue()/dequeue()/clearQueue()
2010/12/02 Javascript
js中的值类型和引用类型小结 文字说明与实例
2010/12/12 Javascript
基于jquery实现的上传图片及图片大小验证、图片预览效果代码
2011/04/12 Javascript
jquery 取子节点及当前节点属性值
2014/07/25 Javascript
jQuery构造函数init参数分析
2015/05/13 Javascript
javascript实现自动输出文本(打字特效)
2015/08/27 Javascript
AngularJS实现标签页的两种方式
2016/09/05 Javascript
浅谈jQuery效果函数
2016/09/16 Javascript
JS常用算法实现代码
2016/11/14 Javascript
JS中的多态实例详解
2017/10/15 Javascript
以v-model与promise两种方式实现vue弹窗组件
2018/05/21 Javascript
实例详解Node.js 函数
2018/06/10 Javascript
原生JS实现$.param() 函数的方法
2018/08/10 Javascript
Vue项目中使用jsonp抓取跨域数据的方法
2019/11/10 Javascript
何时/使用 Vue3 render 函数的教程详解
2020/07/25 Javascript
element-ui点击查看大图的方法示例
2020/12/14 Javascript
python实现的阳历转阴历(农历)算法
2014/04/25 Python
使用Python获取Linux系统的各种信息
2014/07/10 Python
Python实现监控程序执行时间并将其写入日志的方法
2015/06/30 Python
详解如何使用Python编写vim插件
2017/11/28 Python
python机器学习实战之最近邻kNN分类器
2017/12/20 Python
基于python批量处理dat文件及科学计算方法详解
2018/05/08 Python
python list转矩阵的实例讲解
2018/08/04 Python
详解python破解zip文件密码的方法
2020/01/13 Python
详解CSS3中Media Queries的相关使用
2015/07/17 HTML / CSS
船餐厅和泰晤士河餐饮游轮:Bateaux London
2018/03/19 全球购物
添柏岚英国官方网站:Timberland英国
2019/11/28 全球购物
《荷花》教学反思
2014/04/16 职场文书
2014领导班子“四风问题”对照检查材料思想汇报(执法局)
2014/09/21 职场文书
领导班子对照检查材料
2014/09/22 职场文书
2015年班干部工作总结
2015/04/29 职场文书
九年级英语教学反思
2016/02/15 职场文书
php png失真的原因及解决办法
2021/11/17 PHP