工具2-xmind轉(zhuǎn)Excel用例輔助窗口工具(三)

上一篇詳細(xì)介紹了xmind用例轉(zhuǎn)為禪道用例轻要,本期是對該工具的優(yōu)化椭懊!

  1. 將py文件轉(zhuǎn)為exe格式宇立,放在桌面隨時可用踪宠。
  2. 此外針對部分參數(shù)每次都不一樣的問題,專門做了一個GUI圖形界面泄伪,打開exe文件殴蓬,即可進行補充,帶入到py腳本中蟋滴。
    完全做到隨用隨點染厅,方便快捷

查看效果

xmind_to_excel用例轉(zhuǎn)化工具

本篇代碼用到python標(biāo)準(zhǔn)庫模塊——tkinter
本次因為邊學(xué)tkinter邊寫這個界面,故用到tkinter的很多控件津函,其實可以寫得更簡化些
如果你對tkinter不太了解肖粮,在下方為你準(zhǔn)備了零基礎(chǔ)tkinter自學(xué)教程,保證學(xué)半天就可以掌握一個簡單的窗口尔苦!

下面看看代碼的講解~

# 導(dǎo)入tkinter包涩馆,定義別名為tk
import os.path
import tkinter as tk
from tkinter.filedialog import askopenfilename
from tkinter.messagebox import showinfo
from xmind_cd import XmindToXsl
from tkinter import messagebox

# 定義Application類表示應(yīng)用/窗口,繼承Frame類
class Application(tk.Frame):
    # Application構(gòu)造函數(shù)允坚,master為窗口的父控件
    # __init__有兩個參數(shù)魂那,一個self,即Application對象本身稠项;一個master涯雅;
    #一個控件可能屬于另外一個控件,默認(rèn)一個窗口沒有master展运,即為None
    def __init__(self,master=None):
        # 調(diào)用Application的父類Frame的__init__函數(shù)活逆,初始化Application類的Frame類部分
        # __init__(self, master=None, cnf={}, **kw)
        tk.Frame.__init__(self,master)
        # 顯示窗口并使用grid布局,grid方法從Frame繼承來拗胜,布局就是控件的排列方式蔗候,有g(shù)rid、pack等
        self.grid()
        self.path = tk.StringVar()
        self.projectCode = tk.StringVar()
        # 創(chuàng)建控件埂软,調(diào)用后面定義的createWidgets方法
        self.createWidgets()

一锈遥、封裝窗口采取固定的模式:

1、首先定義Application類表示應(yīng)用/窗口勘畔,繼承Frame類
2迷殿、Application構(gòu)造函數(shù),master為窗口的父控件咖杂;init_有兩個參數(shù),一個self蚊夫,即Application對象本身诉字;一個master,默認(rèn)一個窗口沒有master,即為None
3壤圃、初始化Application類的Frame類部分陵霉,格式如下: init(self, master=None, cnf={}, **kw)
4、顯示窗口并使用grid布局伍绳,grid方法從Frame繼承來踊挠,布局就是控件的排列方式,有g(shù)rid冲杀、pack等
5效床、StringVar(),使用界面編程的時候权谁,有些時候是需要跟蹤變量的值的變化剩檀,以保證值的變更隨時可以顯示在界面上
6、創(chuàng)建控件旺芽,調(diào)用后面定義的createWidgets方法

    # def selectPath(self):
    #     """選擇要轉(zhuǎn)換成excel的xmind地址"""
    #     self.path__ = askopenfilename()
    #     self.path.set(self.path__)


    def selectPath(self):
        # 從本地選擇一個xmind文件沪猴,并返回文件的目錄
        self.filename = tk.filedialog.askopenfilename()
        if self.filename.endswith('xmind'):
            self.path.set(self.filename)
        else:
            showinfo(title="提示",message="請選擇正確的xmind文件")
二、獲取本地的xmind文件

1采章、askopenfilename 是用來選擇獲取Windows文件路徑的运嗜,具體用法:

from tkinter.filedialog import askopenfilename
filepath = filedialog.askopenfilename() # 打開文件,返回該文件的完整路徑

2悯舟、showinfo是用來彈出提示框的担租,如下
showinfo(title="提示",message="請選擇正確的xmind文件")



    # 創(chuàng)建控件
    def createWidgets(self):
        """生成gui界面"""
        # 創(chuàng)建一個標(biāo)簽,輸出要顯示的內(nèi)容
        self.firstLabel = tk.Label(self,text="目標(biāo)路徑")
        # 設(shè)定使用grid布局
        self.firstLabel.grid(row=0,column=0)
        #創(chuàng)建一個輸入框
        self.firstEntry = tk.Entry(self,textvariable=self.path)
        self.firstEntry.grid(row=0,column=1)
       
        self.firstLabel1 = tk.Label(self,text='禪道項目編碼')
        self.firstLabel1.grid(row=2,column=0)
       # 創(chuàng)建輸入框图谷,并獲取輸入的內(nèi)容
        self.firstEntry1 = tk.Entry(self,textvariable=self.projectCode)
        self.firstEntry1.grid(row=2,column=1)
        print(self.firstEntry1.get())

        #創(chuàng)建一個按鈕翩活,觸發(fā)執(zhí)行操作
        self.clickButton = tk.Button(self,text="路徑選擇",command=self.selectPath)
        #設(shè)定使用grid布局
        self.clickButton.grid(row=0,column=2)

        # 創(chuàng)建提交按鈕
        self.clickButton = tk.Button(self,text="提交",command=self.getvalue)
        # 設(shè)定使用grid布局
        self.clickButton.grid(row=4,column=1)

三、添加控件:

1便贵、創(chuàng)建標(biāo)簽菠镇,可設(shè)置樣式
label = tk.Label(win, text="網(wǎng)址:c.biancheng.net",font=('宋體',20, 'bold italic'),bg="#7CCD7C",
# 設(shè)置標(biāo)簽內(nèi)容區(qū)大小
width=30,height=5,
# 設(shè)置填充區(qū)距離、邊框?qū)挾群推錁邮剑ò枷菔剑?br> padx=10, pady=15, borderwidth=10, relief="sunken")

2承璃、創(chuàng)建Button按鈕:
點擊按鈕時執(zhí)行的函數(shù)
button = tk.Button(window,text='點擊前往',bg='#7CCD7C',width=20, height=5,command=click_button).pack()

3利耍、創(chuàng)建輸入框控件
entry1 = tk.Entry(win)
得到輸入框字符串
print(entry1.get())

    def getvalue(self):
        """執(zhí)行轉(zhuǎn)換excel函數(shù)"""
        xmindPath =self.path.get()
        # 獲取文件名
        #xmindName = os.path.join(os.path.dirname(__file__),'xmind_excel.xmind')
        projectCode = self.projectCode.get()
        self.xmind_to_xls = XmindToXsl(xmindPath)
        self.xmind_to_xls.write_excel('新公務(wù)云(#10)', projectCode, '功能測試', '正常')

四、傳參盔粹,執(zhí)行上一篇的xmind轉(zhuǎn)禪道代碼

xmindPath隘梨、projectCode

if __name__ == '__main__':

    # 創(chuàng)建一個Application對象app
    app = Application()
    # 設(shè)置窗口標(biāo)題
    app.master.title = 'xmind轉(zhuǎn)excel用例'
    # 設(shè)置窗口大小
    app.master.geometry("300x200")
    # 定義回調(diào)函數(shù),當(dāng)用戶點擊窗口×退出時舷嗡,執(zhí)行用戶自定義的函數(shù)
    def QueryWindow():
        # 顯示一個警告信息轴猎,點擊確認(rèn),銷毀窗口
        if messagebox.showwarning("二次確認(rèn)", "確認(rèn)關(guān)閉嗎进萄?"):
            # 這里必須使用destory()關(guān)閉窗口
            # root_window.destory()
            app.master.quit()

    # 使用協(xié)議機制與窗口交互捻脖,并回調(diào)用戶自定義的函數(shù)
    app.master.protocol('WM_DELETE_WINDOW', QueryWindow)
    # 主循環(huán)開始
    app.mainloop()

五锐峭、啟動GUI,設(shè)置窗口樣式

結(jié)果,效果如下:


正常轉(zhuǎn)化
關(guān)于如何做各種GUI窗口可婶?

點擊查看 從零開始學(xué)Tkinter系列

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末沿癞,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子矛渴,更是在濱河造成了極大的恐慌椎扬,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件具温,死亡現(xiàn)場離奇詭異蚕涤,居然都是意外死亡,警方通過查閱死者的電腦和手機桂躏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進店門钻趋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人剂习,你說我怎么就攤上這事蛮位。” “怎么了鳞绕?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵失仁,是天一觀的道長。 經(jīng)常有香客問我们何,道長萄焦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任冤竹,我火速辦了婚禮拂封,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鹦蠕。我一直安慰自己冒签,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布钟病。 她就那樣靜靜地躺著萧恕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪肠阱。 梳的紋絲不亂的頭發(fā)上票唆,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天,我揣著相機與錄音屹徘,去河邊找鬼走趋。 笑死,一個胖子當(dāng)著我的面吹牛噪伊,可吹牛的內(nèi)容都是我干的吆视。 我是一名探鬼主播典挑,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼啦吧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起拙寡,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤授滓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后肆糕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體般堆,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年诚啃,在試婚紗的時候發(fā)現(xiàn)自己被綠了淮摔。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡始赎,死狀恐怖和橙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情造垛,我是刑警寧澤魔招,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站五辽,受9級特大地震影響办斑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜杆逗,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一乡翅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧罪郊,春花似錦蠕蚜、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至橄维,卻和暖如春尺铣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背争舞。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工凛忿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人竞川。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓店溢,卻偏偏與公主長得像叁熔,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子床牧,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內(nèi)容