使用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中使用poplib模块收取邮件的教程
Apr 29 Python
Python实现Windows上气泡提醒效果的方法
Jun 03 Python
浅谈python新手中常见的疑惑及解答
Jun 14 Python
通过Python爬虫代理IP快速增加博客阅读量
Dec 14 Python
python 2.7.14安装图文教程
Apr 08 Python
tensorflow学习笔记之mnist的卷积神经网络实例
Apr 15 Python
python 统计列表中不同元素的数量方法
Jun 29 Python
Python框架Flask的基本数据库操作方法分析
Jul 13 Python
python如何导出微信公众号文章方法详解
Aug 31 Python
python操作链表的示例代码
Sep 27 Python
Python离线安装各种库及pip的方法
Nov 28 Python
利用python制作拼图小游戏的全过程
Dec 04 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
第七节 类的静态成员 [7]
2006/10/09 PHP
php 数组的一个悲剧?
2011/05/11 PHP
php中filter_input函数用法分析
2014/11/15 PHP
php递归json类实例
2014/12/02 PHP
PHP+Ajax验证码验证用户登录
2016/07/20 PHP
PHP 用session与gd库实现简单验证码生成与验证的类方法
2016/11/15 PHP
Js之软键盘实现(js源码)
2007/01/30 Javascript
JavaScript中的Window窗口对象
2008/01/16 Javascript
javascript下4个跨浏览器必备的函数
2010/03/07 Javascript
javascript对象之内置对象Math使用方法
2010/04/16 Javascript
jquery获取子节点和父节点的示例代码
2013/09/10 Javascript
javascript打印输出json实例
2013/11/11 Javascript
iframe实用操作锦集
2014/04/22 Javascript
JavaScript实现跨浏览器的添加及删除事件绑定函数实例
2015/08/04 Javascript
AngularJS控制器继承自另一控制器
2016/05/09 Javascript
[原创]javascript typeof id==='string'?document.getElementById(id):id解释
2016/11/02 Javascript
Angularjs中ng-repeat的简单实例
2017/08/25 Javascript
vue.js将时间戳转化为日期格式的实现代码
2018/06/05 Javascript
原生js实现淘宝放大镜效果
2020/10/28 Javascript
jQuery each和js forEach用法比较
2019/02/27 jQuery
Vue 中 filter 与 computed 的区别与用法解析
2019/11/21 Javascript
vue仿携程轮播图效果(滑动轮播,下方高度自适应)
2021/02/11 Vue.js
深入理解NumPy简明教程---数组2
2016/12/17 Python
django和vue实现数据交互的方法
2019/08/21 Python
python使用itchat模块给心爱的人每天发天气预报
2019/11/25 Python
python 数据分析实现长宽格式的转换
2020/05/18 Python
美国背景检查、公共记录和人物搜索网站:BeenVerified
2018/02/25 全球购物
什么是GWT的Entry Point
2013/08/16 面试题
大学毕业生工作的自我评价
2013/10/01 职场文书
学校安全工作汇报材料
2014/08/16 职场文书
大学生就业协议书范本(适用于公司企业)
2014/10/07 职场文书
2014年网络管理员工作总结
2014/12/01 职场文书
小学校园广播稿
2015/08/18 职场文书
php TP5框架生成二维码链接
2021/04/01 PHP
SQLServer 日期函数大全(小结)
2021/04/08 SQL Server
Pytorch 如何实现LSTM时间序列预测
2021/05/17 Python