使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
作者:晚风拂面 发布时间:2023-04-25 19:32:40
上一篇我们写了怎么将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文件删除掉,设置为安全就可以了。
来源:https://www.cnblogs.com/xu-xu/articles/12000205.html


猜你喜欢
- 如下所示:# 输入数字使其反向输出num = int(input("请输入一个数:"))i = 0num1 = numw
- SQL SERVER支持的字符串函数内容:LEN(string)函数LOWER(string)函数UPPER (string)函数LTRIM
- 实例如下所示:import osimport stringpath = "/Users/U/workspace/python le
- 本文介绍了PHP开发中遇到的数组问题,这里介绍了判断PHP数组为空的5种方法,有需要的朋友可以借鉴参考一下。1. isset功能:判断变量是
- 问题问题1Python是一种动态语言,不支持类型检查。当需要对一个对象执行类型检查时,可能会采用下面的方式:class Foo(object
- 各位想必都知道,onfocus="this.blur()"这条代码能消除链接时的虚线框,但你有没有想过,如果你的网页上有
- 一、错误提示:用户登录失败,该用户与可信SQL Server连接无关联 错误18452原因是远程登录没配置好,配置方法如下:1:开启SQL2
- select UNIX_TIMESTAMP(ADDDATE(NOW(),INTERVAL -60 DAY))首先根据now()获得当前时间使
- 因为有大家的支持,我们才能做到现在,感谢你们这一路上对我们的支持.在这篇文章中,我们将主要针对MySQL的实用技巧,讲讲面试中相关的问题.1
- 前言gif图就是动态图,它的原理和视频有点类似,也是通过很多静态图片合成的.本篇文章主要介绍,如何利用Python快速合成gif图,主要利用
- 语法:列表 list.pop(obj=list[-1])pop()用于删除并返回列表中的一个元素(默认为最后一个元素)obj:要删除并返回的
- 问题描述使用 Navicat 导入之前转储好的 sql 文件,报错错误原因在信息日志当中往上翻,发现没有选择数据库,所以报错的原因就是没有提
- 判断一个数是否能被另一个整数整除是一个挺简单的问题,一般一个模运算就可以搞定了,懒惰的晓萌还是不想自己做,于是找到你帮他写代码,你就帮帮他吧
- 首先一起来复习一下死锁的概念:死锁是指两个或者多个事务在同一资源上相互占用,并请求锁定对方占用的资源,从而导致恶性循环的现象。下面我们通过几
- 引子:今天在蓝点看了Yang的博客《CSS样式表中继承关系的空格与不空格》,思考了一下,本来想写《CSS样式的复合定义与复合调用及简单的模块
- 本文实例讲述了Python实现的将文件每一列写入列表功能。分享给大家供大家参考,具体如下:# -*- coding: utf-8 -*-#!
- 1前言我们本节来看看我们常说的索引下推。2什么是索引下推索引下推(Index Condition Pushdown,简称ICP),是MySQ
- 在Python中我们主要是通过thread和threading这两个模块来实现的,其中Python的threading模块是对thread做
- 本文实例为大家分享了Python实现信息管理系统的具体代码,供大家参考,具体内容如下"""项目名称 =
- ref:被用来给元素或子组件注册引用信息,引用信息将会注册在父组件的$refs对象上。如果在普通的DOM元素上使用,那么指向的就是普通的DO