一、前沿
本篇是制作exe工具妖滔,上傳xmind文件后隧哮,可直接通過獲取xmind用例數(shù)的函數(shù),顯示出xmind用例數(shù)結(jié)果座舍。
代碼已提供沮翔,需要的可自取~
二、講解方案
1曲秉、定義exe窗口需要顯示的值
# -*- coding: utf-8 -*-
'''
@Time : 2022/11/30 11:56
@Author : Celeste
@File : exe_tool.py
'''
# 導(dǎo)入tkinter包采蚀,定義別名為tk
import os.path
import tkinter as tk
from tkinter.filedialog import askopenfilename
from tkinter.messagebox import showinfo
from count_xmind import func
from tkinter import messagebox
# 定義Application類表示應(yīng)用/窗口,繼承Frame類
class Application(tk.Frame):
def __init__(self, master=None):
tk.Frame.__init__(self, master)
self.grid()
self.path = tk.StringVar() # 獲取xmind文件路徑
self.count1 = tk.StringVar() # 計(jì)算xmind文件的用例數(shù)
# 創(chuàng)建控件承二,調(diào)用后面定義的createWidgets方法
self.createWidgets()
2榆鼠、從電腦中選擇xmind文件,并進(jìn)行判斷格式是否是xmind
def selectPath(self):
# 從本地選擇一個(gè)xmind文件亥鸠,并返回文件的目錄
self.filename = tk.filedialog.askopenfilename()
if self.filename.endswith('xmind'):
self.path.set(self.filename)
else:
showinfo(title="提示", message="請(qǐng)選擇正確的xmind文件")
3妆够、定義窗口中的控件
# 創(chuàng)建控件
def createWidgets(self):
"""生成gui界面"""
self.clickButton = tk.Button(self, text="請(qǐng)選擇xmind文件路徑:", width=18,height=1,bg='orange',fg='white',command=self.selectPath)
# 設(shè)定使用grid布局
self.clickButton.grid(row=1, column=3)
# 創(chuàng)建一個(gè)輸入框
self.firstEntry = tk.Entry(self, textvariable=self.path)
self.firstEntry.grid(row=1, column=4)
# 創(chuàng)建提交按鈕
self.clickButton = tk.Button(self, text="點(diǎn)擊獲取總用例數(shù):", width=18,height=1,bg='orange',fg='white',command=self.getvalue)
# 設(shè)定使用grid布局
self.clickButton.grid(row=5, column=3)
# 創(chuàng)建一個(gè)輸入框
self.firstEntry = tk.Entry(self, textvariable=self.count1)
self.firstEntry.grid(row=5, column=4)
4、與獲取xmind用例數(shù)結(jié)合
def getvalue(self):
"""執(zhí)行轉(zhuǎn)換excel函數(shù)"""
xmindPath = self.path.get()
# 獲取文件名
# xmindName = os.path.join(os.path.dirname(__file__),'xmind_excel.xmind')
self.func = func(xmindPath)
self.case_count = self.func.count_case(self.func.get_story())
self.count1.set(self.case_count)
5负蚊、定義窗口的名稱神妹,關(guān)閉窗口邏輯
if __name__ == '__main__':
# 創(chuàng)建一個(gè)Application對(duì)象app
app = Application()
# 設(shè)置窗口標(biāo)題
app.master.title('xmind用例統(tǒng)計(jì)')
# 設(shè)置窗口大小
app.master.geometry("500x400")
def QueryWindow():
# 顯示一個(gè)警告信息,點(diǎn)擊確認(rèn)家妆,銷毀窗口
if messagebox.showwarning("二次確認(rèn)", "確認(rèn)關(guān)閉嗎灾螃?"):
# 這里必須使用destory()關(guān)閉窗口
# root_window.destory()
app.master.quit()
# 使用協(xié)議機(jī)制與窗口交互,并回調(diào)用戶自定義的函數(shù)
# 定義回調(diào)函數(shù)揩徊,當(dāng)用戶點(diǎn)擊窗口×退出時(shí),執(zhí)行用戶自定義的函數(shù)
app.master.protocol('WM_DELETE_WINDOW', QueryWindow)
# 主循環(huán)開始
app.mainloop()