使用Python中tkinter库简单gui界面制作及打包成exe(二)

        上一篇我们写了怎么将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的文件,可以把两个文件放到一个文件夹下

 1 import tkinter as tk
 2 from tkinter.filedialog import askopenfilename
 3 from xmindtoxls import  xmind_to_xls
 4 from tkinter.messagebox import showinfo
 5 import re
 6 
 7 # 定义MainUI类表示应用/窗口,继承Frame类
 8 class MainUI(tk.Frame):
 9     # Application构造函数,master为窗口的父控件
10     def __init__(self, master=None):
11         # 初始化Application的Frame部分
12         tk.Frame.__init__(self, master)
13         # 显示窗口,并使用grid布局
14         self.grid()
15         self.path = tk.StringVar()
16         # 创建控件
17         self.createWidgets()
18 
19     def selectPath(self):
20         '''选择要转换成excel的xmind地址'''
21         self.path_ = askopenfilename()
22         self.path.set(self.path_)
23 
24     # 创建控件
25     def createWidgets(self):
26         '''生成gui界面'''
27         # 创建一个标签,输出要显示的内容
28         self.firstLabel = tk.Label(self, text="目标路径")
29         # 设定使用grid布局
30         self.firstLabel.grid(row = 0, column = 0)
31         self.firstEntry = tk.Entry(self,textvariable = self.path)
32         self.firstEntry.grid(row=0, column=1)
33         # 创建一个按钮,用来触发answer方法
34         self.clickButton = tk.Button(self, text="路径选择", command=self.selectPath)
35         # 设定使用grid布局
36         self.clickButton.grid(row = 0, column = 2)
37         # 创建一个标签,输入模块
38         self.secLabel = tk.Label(self, text="模块")
39         # 设定使用grid布局
40         self.secLabel.grid(row=1, column=0)
41         self.module = tk.StringVar()
42         self.secEntry = tk.Entry(self,textvariable = self.module)
43         self.secEntry.grid(row=1, column=1)
44         # 创建一个标签,输入版本号
45         self.trLabel = tk.Label(self, text="版本号")
46         # 设定使用grid布局
47         self.trLabel.grid(row=2, column=0)
48         self.buildnum = tk.StringVar()
49         self.trEntry = tk.Entry(self,textvariable = self.buildnum)
50         self.trEntry.grid(row=2, column=1)
51         # 创建一个标签,输入执行人
52         self.fourLabel = tk.Label(self, text="执行人")
53         # 设定使用grid布局
54         self.fourLabel.grid(row=3, column=0)
55         self.owner = tk.StringVar()
56         self.fourEntry = tk.Entry(self,textvariable = self.owner)
57         self.fourEntry.grid(row=3, column=1)
58         # 创建一个提交按钮,用来触发提交方法,获取值
59         self.clickButton = tk.Button(self, text="提交",command=self.getvalue)
60         # 设定使用grid布局
61         self.clickButton.grid(row=4, column=1)
62 
63     def getvalue(self):
64         '''获取输入的值,并执行转换excel函数'''
65         global way,module,buildnum,owner
66         way = self.path.get()
67         module = self.module.get()
68         buildnum = self.buildnum.get()
69         owner = self.owner.get()
70         print(way,module,buildnum,owner)
71         self.regvalue = '.*\.xmind$'
72         self.xmind_reg = re.match(self.regvalue,way )
73         if self.xmind_reg:
74             # xmind转换成xls
75             self.xmind_to_xls = xmind_to_xls()
76             self.xmind_to_xls.write_excel(way,module,buildnum,owner)
77         else:
78             showinfo(title='提示',message='请选择正确的xmind文件,谢谢!')
79 
80 # 创建一个MainUI对象
81 app = MainUI()
82 # 设置窗口标题
83 app.master.title('「xmind转xls」')
84 # 设置窗体大小
85 app.master.geometry('400x200')
86 # 主循环开始
87 app.mainloop()

           打包用的是pyinstaller库,先pip安装一下,然后进入相应的Python文件所在的文件夹下,输入命令 pyinstaller -F tkintertoxls.py -p  xmindtoxls.py 就可以生成exe可执行文件了,这样这个xmind转xls的打包工具就完成了。注意电脑管家可能会把exe文件删除掉,设置为安全就可以了。

 

posted @ 2019-12-07 12:08  晚风拂面  阅读(6643)  评论(0编辑  收藏  举报