使用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中的日志模块logging
Jun 19 Python
Django接受前端数据的几种方法总结
Nov 04 Python
python正则分析nginx的访问日志
Jan 17 Python
一个Python最简单的接口自动化框架
Jan 02 Python
Python异常处理例题整理
Jul 07 Python
Python实现基于SVM的分类器的方法
Jul 19 Python
在jupyter notebook中调用.ipynb文件方式
Apr 14 Python
Python PyQt5运行程序把输出信息展示到GUI图形界面上
Apr 27 Python
python 实现围棋游戏(纯tkinter gui)
Nov 13 Python
Python下载的11种姿势(小结)
Nov 18 Python
Python用SSH连接到网络设备
Feb 18 Python
用 Python 元类的特性实现 ORM 框架
May 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
ftp类(myftp.php)
2006/10/09 PHP
PHP6 先修班 JSON实例代码
2008/08/23 PHP
用php解析html的实现代码
2011/08/08 PHP
ThinkPHP路由详解
2015/07/27 PHP
PHP等比例压缩图片的实例代码
2018/07/26 PHP
laravel5使用freetds连接sql server的方法
2018/12/07 PHP
详解Laravel服务容器的绑定与解析
2019/11/05 PHP
鼠标经过的文本框textbox变色
2009/05/21 Javascript
js实现点击链接后窗口缩小并居中的方法
2015/03/02 Javascript
基于canvas实现的钟摆效果完整实例
2016/01/26 Javascript
jQuery实现下拉加载功能实例代码
2016/04/01 Javascript
Bootstrap基本样式学习笔记之标签(5)
2016/12/07 Javascript
浅谈JS中的反柯里化( uncurrying)
2017/08/17 Javascript
JS手机端touch事件计算滑动距离的方法示例
2017/10/26 Javascript
详解webpack打包后如何调试的方法步骤
2018/11/07 Javascript
js中innerText/textContent和innerHTML与target和currentTarget的区别
2019/01/21 Javascript
微信小程序后端(java)开发流程的详细步骤
2019/11/13 Javascript
OpenLayers3实现测量功能
2020/09/25 Javascript
原生js实现自定义难度的扫雷游戏
2021/01/22 Javascript
[05:20]2018DOTA2亚洲邀请赛主赛事第三日战况回顾 LGD率先挺进胜者组决赛
2018/04/06 DOTA
Python subprocess模块学习总结
2014/03/13 Python
Python正则表达式使用范例分享
2016/12/04 Python
python3 selenium 切换窗口的几种方法小结
2018/05/21 Python
Python给定一个句子倒序输出单词以及字母的方法
2018/12/20 Python
python 求1-100之间的奇数或者偶数之和的实例
2019/06/11 Python
keras 如何保存最佳的训练模型
2020/05/25 Python
Lacoste美国官网:经典POLO衫品牌
2016/10/12 全球购物
汉森冲浪板:Hansen Surfboards
2018/05/19 全球购物
任意存:BOXFUL
2018/05/21 全球购物
爱情检讨书大全
2014/01/21 职场文书
主管会计岗位职责
2014/03/13 职场文书
战马观后感
2015/06/08 职场文书
研讨会致辞
2015/07/31 职场文书
军事理论课感想
2015/08/11 职场文书
2016年9月份红领巾广播稿
2015/12/21 职场文书
使用pandas或numpy处理数据中的空值(np.isnan()/pd.isnull())
2021/05/14 Python