上一篇我們寫了怎么將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文件刪除掉,設置為安全就可以了。