使用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 BeautifulSoup使用方法详解
Nov 21 Python
python打开文件并获取文件相关属性的方法
Apr 23 Python
python用模块zlib压缩与解压字符串和文件的方法
Dec 16 Python
Python基础之getpass模块详细介绍
Aug 10 Python
python绘制圆柱体的方法
Jul 02 Python
python单线程下实现多个socket并发过程详解
Jul 27 Python
Python 实现数组相减示例
Dec 27 Python
pytorch 图像预处理之减去均值,除以方差的实例
Jan 02 Python
Windows上安装tensorflow  详细教程(图文详解)
Feb 04 Python
python匿名函数lambda原理及实例解析
Feb 07 Python
关于win10在tensorflow的安装及在pycharm中运行步骤详解
Mar 16 Python
Python 数据结构之十大经典排序算法一文通关
Oct 16 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
实用函数10
2007/11/08 PHP
php PDO中文乱码解决办法
2009/07/20 PHP
php生成二维码的几种方式整理及使用实例
2013/06/03 PHP
php中curl和file_get_content的区别
2014/05/10 PHP
php用户注册时常用的检验函数实例总结
2014/12/22 PHP
自制PHP框架之模型与数据库
2017/05/07 PHP
Javascript中call的两种用法实例
2013/12/13 Javascript
jQuery prototype冲突的2种解决方法(附demo示例下载)
2016/01/21 Javascript
confirm确认对话框的实现方法总结
2016/06/17 Javascript
JS正则匹配URL网址的方法(可匹配www,http开头的一切网址)
2017/01/06 Javascript
微信小程序 简单教程实例详解
2017/01/13 Javascript
node操作mysql数据库实例详解
2017/03/17 Javascript
JavaScript 获取元素在父节点中的下标(推荐)
2017/06/28 Javascript
微信小程序wepy框架笔记小结
2018/08/08 Javascript
如何在微信小程序里面退出小程序的方法
2019/04/28 Javascript
Vue封装的组件全局注册并引用
2019/07/24 Javascript
使用layui日期控件laydate对开始和结束时间进行联动控制的方法
2019/09/06 Javascript
使用axios发送post请求,将JSON数据改为form类型的示例
2019/10/31 Javascript
js实现的订阅发布者模式简单示例
2020/03/14 Javascript
pyqt4教程之messagebox使用示例分享
2014/03/07 Python
python实现的jpg格式图片修复代码
2015/04/21 Python
Python中for循环和while循环的基本使用方法
2015/08/21 Python
python将视频转换为全字符视频
2019/04/26 Python
用django-allauth实现第三方登录的示例代码
2019/06/24 Python
代码实例讲解python3的编码问题
2019/07/08 Python
python3.8 微信发送服务器监控报警消息代码实现
2019/11/05 Python
opencv3/python 鼠标响应操作详解
2019/12/11 Python
python实现最短路径的实例方法
2020/07/19 Python
L’Artisan Parfumeur官网:法国香水品牌
2020/08/11 全球购物
what is the difference between ext2 and ext3
2013/11/03 面试题
消防应急演练方案
2014/02/12 职场文书
医院护士见习期自我鉴定
2014/04/10 职场文书
服务承诺书格式
2014/05/21 职场文书
Ajax是什么?Ajax高级用法之Axios技术
2021/04/21 Javascript
Vue中插槽slot的使用方法与应用场景详析
2021/06/08 Vue.js
Go Grpc Gateway兼容HTTP协议文档自动生成网关
2022/06/16 Golang