標籤:

tkinter實現GUI:管理工具函數

tkinter實現GUI:管理工具函數

來自專欄 python筆記

函數太多後的管理問題

用過一段時間python後,文件夾里會堆積出大量的各種功能的工具函數。由於函數名只能是英文縮寫,而且只能用文件夾來分類,所以經常發現以前寫過的函數找不到,而且功能近似或存在上下游關係的函數不能按照邏輯關係展示在臨近的位置,導致使用起來思維混亂,效率低下。

GUI可以解決這個問題

GUI界面上,你可以為每個函數重新匹配一個中文功能名稱的按鈕;可以為每個函數設計合適數量的輸入框,便於提交input;並且利用GUI的布局功能,將功能類似的函數放在同一區塊,將上下游關係的函數按照合理的順序展示;還可以利用彈出窗口的模式來處理更精細的邏輯關係。

tkinter

這是python的一個實現GUI的模塊,使用起來非常簡便(如果你對比用過MATLAB的GUI功能,就會有強烈共鳴)。簡言之,就是每個函數對應GUI上一個按鈕,滑鼠點一下就調用對應的那個工具函數。你只需按需求設計好按鈕和輸入框的布局就可以了。

tkinter中,定義一個GUI界面,就是定義一個類,其中主題是一個window對象,之後pack上各種按鈕和標籤、輸入框、畫布等組件。最簡單的tkinter的GUI如下示例,直接在示例代碼上做修改即可。

示例代碼(Python3)

import tkinter as tk # 導入tkinter模塊# 定義GUI:我的函數庫class MyGUI: def __init__(self): window = tk.Tk() # 生成一個窗口對象 window.title(我的函數庫) # 設置窗口標題 # frame1:市場監控 frame1 = tk.Frame(window) # 生成第一個框架 frame1.pack() # 將框架1放入窗口 tk.Label(frame1, text = 市場監控).pack(side=left) # 生成框架標題 tk.Button(frame1, text="計算實時期指基差情況", command=calCurIndexFtrsBasis).pack(side=left) # 插入按鈕 tk.Button(frame1, text="繪製主要股指近20日走勢圖", command=plotMainStkIndexCurve20Day).pack(side=left) # 插入按鈕 tk.Button(frame1, text="估算主動股基平均倉位", command=estStkFundAvgPosition).pack(side=left) # 插入按鈕 # frame2:期貨資料庫管理 frame2 = tk.Frame(window) # 生成第二個框架 frame2.pack() # 將框架2放入窗口 tk.Label(frame2, text = 期貨資料庫管理).pack(side=left) # 生成框架標題 tk.Button(frame2, text="檢查期貨數據更新情況", command=checkFtrsData).pack(side=left) # 插入按鈕 tk.Button(frame2, text="更新期貨合約列表", command=updateFtrsList).pack(side=left) # 插入按鈕 tk.Button(frame2, text="更新期貨行情數據", command=updateFtrsQuote).pack(side=left) # 插入按鈕 # frame3:雜放工具 frame3 = tk.Frame(window) # 生成第三個框架 frame3.pack() # 將框架3放入窗口 tk.Label(frame3, text = 我的雜放工具).pack(side=left) # 生成框架標題 tk.Button(frame3, text="分形圖繪製", command=plotFractal).pack(side=left) # 插入按鈕 tk.Button(frame3, text="多體運動軌跡數值模擬", command=plotMultiBodyMotion).pack(side=left) # 插入按鈕 tk.Button(frame3, text="抓取10大媒體財經頭條", command=capHeaderOfTop10FinancialNews).pack(side=left) # 插入按鈕 window.mainloop() # 創建事件循環(不必理解,照抄即可)MyGUI() # 啟動GUI

註:每一個tk.Button(...)中的command參數就指向了擬調用的函數(請替換為自己的函數)。

推薦閱讀:

EID主題皮膚設計小課堂:手機QQ主題皮膚設計

TAG:Python | GUI設計 |