使用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文件刪除掉,設置為安全就可以了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM