使用Python中tkinter庫(kù)簡(jiǎn)單gui界面制作及打包成exe的操作方法(二)
上一篇我們寫(xiě)了怎么將xmind轉(zhuǎn)換成想要的excel格式,這篇再講一下用Python自帶的tkinter庫(kù)設(shè)計(jì)一個(gè)簡(jiǎn)單的gui界面,讓我們的xmind路徑,用例版本執(zhí)行等都通過(guò)這個(gè)gui界面來(lái)輸入,生成我們需要的excel文件。
Python要生成gui,庫(kù)還是比較多的比如wxpython,這個(gè)我看了下,感覺(jué)比較難懂,畢竟只是設(shè)計(jì)一個(gè)比較簡(jiǎn)單的gui界面,所以就使用了tkinter庫(kù),感覺(jué)這個(gè)還是比較方便易懂的,大家可以在這里學(xué)習(xí)tkinter庫(kù)http://c.biancheng.net/python/tkinter/
如果只是想做個(gè)簡(jiǎn)單的gui界面,直接想用什么就找什么就行了 ,我這個(gè)界面只用到了askopenfilename 和showinfo這兩個(gè)功能,askopenfilename 是用來(lái)選擇獲取Windows文件路徑的,showinfo是用來(lái)彈出提示框的,另外一個(gè)注意點(diǎn)就是 “self.module = tk.StringVar() self.secEntry = tk.Entry(self,textvariable = self.module)”,必須要這樣寫(xiě)才能獲取到輸入框的值,剛開(kāi)始我不知道這樣獲取,也是找了半天才找到,from xmindtoxls import xmind_to_xls是上一篇寫(xiě)的生成excel的文件,可以把兩個(gè)文件放到一個(gè)文件夾下
import tkinter as tkfrom tkinter.filedialog import askopenfilenamefrom xmindtoxls import xmind_to_xlsfrom tkinter.messagebox import showinfoimport re# 定義MainUI類(lèi)表示應(yīng)用/窗口,繼承Frame類(lèi)class MainUI(tk.Frame): # Application構(gòu)造函數(shù),master為窗口的父控件 def __init__(self, master=None): # 初始化Application的Frame部分 tk.Frame.__init__(self, master) # 顯示窗口,并使用grid布局 self.grid() self.path = tk.StringVar() # 創(chuàng)建控件 self.createWidgets() def selectPath(self): ’’’選擇要轉(zhuǎn)換成excel的xmind地址’’’ self.path_ = askopenfilename() self.path.set(self.path_) # 創(chuàng)建控件 def createWidgets(self): ’’’生成gui界面’’’ # 創(chuàng)建一個(gè)標(biāo)簽,輸出要顯示的內(nèi)容 self.firstLabel = tk.Label(self, text='目標(biāo)路徑') # 設(shè)定使用grid布局 self.firstLabel.grid(row = 0, column = 0) self.firstEntry = tk.Entry(self,textvariable = self.path) self.firstEntry.grid(row=0, column=1) # 創(chuàng)建一個(gè)按鈕,用來(lái)觸發(fā)answer方法 self.clickButton = tk.Button(self, text='路徑選擇', command=self.selectPath) # 設(shè)定使用grid布局 self.clickButton.grid(row = 0, column = 2) # 創(chuàng)建一個(gè)標(biāo)簽,輸入模塊 self.secLabel = tk.Label(self, text='模塊') # 設(shè)定使用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) # 創(chuàng)建一個(gè)標(biāo)簽,輸入版本號(hào) self.trLabel = tk.Label(self, text='版本號(hào)') # 設(shè)定使用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) # 創(chuàng)建一個(gè)標(biāo)簽,輸入執(zhí)行人 self.fourLabel = tk.Label(self, text='執(zhí)行人') # 設(shè)定使用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) # 創(chuàng)建一個(gè)提交按鈕,用來(lái)觸發(fā)提交方法,獲取值 self.clickButton = tk.Button(self, text='提交',command=self.getvalue) # 設(shè)定使用grid布局 self.clickButton.grid(row=4, column=1) def getvalue(self): ’’’獲取輸入的值,并執(zhí)行轉(zhuǎn)換excel函數(shù)’’’ 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轉(zhuǎn)換成xls self.xmind_to_xls = xmind_to_xls() self.xmind_to_xls.write_excel(way,module,buildnum,owner) else: showinfo(title=’提示’,message=’請(qǐng)選擇正確的xmind文件,謝謝!’)# 創(chuàng)建一個(gè)MainUI對(duì)象app = MainUI()# 設(shè)置窗口標(biāo)題app.master.title(’「xmind轉(zhuǎn)xls」’)# 設(shè)置窗體大小app.master.geometry(’400x200’)# 主循環(huán)開(kāi)始app.mainloop()
打包用的是pyinstaller庫(kù),先pip安裝一下,然后進(jìn)入相應(yīng)的Python文件所在的文件夾下,輸入命令pyinstaller -Ftkintertoxls.py -pxmindtoxls.py 就可以生成exe可執(zhí)行文件了,這樣這個(gè)xmind轉(zhuǎn)xls的打包工具就完成了。注意電腦管家可能會(huì)把exe文件刪除掉,設(shè)置為安全就可以了。
到此這篇關(guān)于使用Python中tkinter庫(kù)簡(jiǎn)單gui界面制作及打包成exe的操作方法(二)的文章就介紹到這了,更多相關(guān)Python gui界面制作及打包成exe內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. html小技巧之td,div標(biāo)簽里內(nèi)容不換行2. 怎樣才能用js生成xmldom對(duì)象,并且在firefox中也實(shí)現(xiàn)xml數(shù)據(jù)島?3. 詳解CSS偽元素的妙用單標(biāo)簽之美4. CSS3中Transition屬性詳解以及示例分享5. XML入門(mén)精解之結(jié)構(gòu)與語(yǔ)法6. HTML DOM setInterval和clearInterval方法案例詳解7. 輕松學(xué)習(xí)XML教程8. 解析原生JS getComputedStyle9. 使用純HTML的通用數(shù)據(jù)管理和服務(wù)10. UDDI FAQs
