# Rework
在4.2版中,我將注意力轉向了促進PAGE中的返工。也就是說,如何使用PAGE調整GUI而不丟失所編寫的支持代碼?同時,我想允許用戶使用Python控制臺中的run命令按鈕查看更改。
這是情況。您設計一個GUI并使用PAGE生成Python代碼,該代碼創建框架函數。然后,您充實了骨架功能以支持GUI,然后決定修改GUI。如果然后再次為GUI生成Python代碼,則您不想丟失為實現該應用程序而編寫的應用程序代碼。這是返工問題:返工GUI時如何保留艱苦的代碼?
從4.2版開始,我嘗試將自動生成的GUI代碼與添加的支持代碼盡可能地完全分開。我的方法是在一個Python模塊中創建生成的GUI代碼,并在要由GUI模塊導入的單獨的Python支持模塊中創建包括骨架函數和Tk變量在內的支持代碼。也就是說,現在PAGE生成兩個Python模塊,一個用于GUI,一個用于支持代碼,并帶有必要的鏈接。
PAGE如下實現此架構。 PAGE現在可以處理三個文件:
* “ \<name> .tcl”是適合輸入PAGE的GUI設計說明。 它既可以在PAGE中創建,也可以作為參數傳遞給PAGE,也可以從主菜單的File子菜單中打開。
* “ \<name> .py”是PAGE生成的主要python模塊,其中包含自動代碼以在屏幕上創建GUI。 它是由PAGE完全生成的。 這將被稱為GUI模塊。
* “ \<name> _support.py”,其中包含支持GUI模塊的代碼。 PAGE創建此模塊的框架,其中包含用于鏈接到GUI模塊的所有必需的樣板代碼,以及Tkinter變量的定義和回調例程的框架版本。 我將其稱為支持模塊。
在上面,“ \<name>”是系統保存“ .tcl”或從文件名中提取時用戶選擇的應用程序名稱(在原始Visual Tcl程序中稱為項目名稱)。作為調用PAGE時的參數。
預期用戶每次修改GUI時都會生成新版本的GUI模塊,但是僅當定義了新的Tkinter變量或回調函數時,才需要PAGE來修改支持模塊。前者將比后者頻繁得多。此外,版本4.3提供了一種通過將新的Tkinter變量和回調函數框架添加到現有支持模塊來更新支持模塊的機制。
任何一個Python模塊的生成都將嘗試保存tcl文件,這樣做可能會詢問您是否真的要保存它。如果您不回答“是”,則根文件名可能未知,并且可能會生成錯誤代碼。
讓我重復一遍:您只應為一個應用程序生成一次支持模塊;否則,您手動添加的任何代碼都會丟失。好吧,以防萬一您無意中這樣做,PAGE會將某些以前的版本保存為備份。如果您在GUI中添加新的或更改小部件,或修改回調函數或Tkinter變量,則必須對支持模塊進行更改。
保存支持模塊時,PAGE將進行測試以查看是否存在具有相同名稱的支持模塊,如果存在,則會詢問用戶是否希望繼續,如果繼續,是否替換或更新該模塊。
有關GUI模塊與支持模塊分離的示例,請參見examples目錄中的WCPE目錄。這是一個顯示WCPE程序的程序,它是我最喜歡的古典音樂電臺之一。在此示例中,所有功能代碼都位于WCPE\_support.py中,GUI設計記錄在主模塊WCPE.py中。我發現處理時區非常棘手,并且不想丟失任何代碼并必須重做或處理差異。同時,我一直在不斷調整GUI。我生成了導入模塊一次,然后在調整GUI的同時在WCPE\_support.py中填寫“ init”函數和回調函數,即更改其位置,顏色,顯示字段的大小,字體等。
可能具有啟發性,因為它舉例說明了由兩個頂級窗口組成的應用程序,其中一個窗口訪問第二個窗口中的Tkinter變量。
對于cha惱,我向PAGE用戶表示歉意,因為他們很久以前還沒有想到要重新使用此解決方案。盡管我已經用幾個示例測試了這個想法,但其中一些示例包含在示例部分中,但我擔心我忽略了一些大問題。因此,如果您發現任何問題或疏忽,請告訴我。
- 介紹
- 更新記錄
- X Concepts
- Visual Tcl
- 使用PAGE設計范例
- 項目目錄配置
- Python 2 or Python 3
- Python編碼和UTF-8
- 使用PAGE的簡短說明
- PAGE的狀態
- 安裝
- PAGE界面
- 主菜單
- 子菜單
- 組件工具欄
- 屬性編輯器
- 組件樹
- 綁定操作窗口
- 菜單編輯器
- 首選項窗口
- Python控制臺
- 回調窗口
- 應用窗口
- 顏色對話框
- 顏色
- 雙顯示器
- 默認值和首選項
- Preferences Windows
- Color Preferences
- Font Preferences
- 模塊結構
- 風格和主題
- 使用PAGE
- 命名約定
- 概述
- Toplevel Geometry
- 別名
- 氣球幫助-工具提示
- 選擇和修改組件
- 修改組件位置和尺寸
- 鎖定組件
- 填充容器
- 剪切,復制和粘貼
- Stash and Apply - Propagate Widget Options
- 菜單組件
- 回調函數
- 將事件鏈接到回調函數
- 創建綁定
- 為滾動組件創建綁定
- 定義回調函數
- 查看回調
- 指定字體
- Toplevel Widget
- 相對位置
- Tkinter變量類
- Ttk Widgets
- Scrolled Widgets
- Ttk Notebook and PNotebook
- Ttk Panedwindow
- Ttk Treeview
- Entry
- Ttk Entry
- Ttk Combobox
- Radiobuttons
- 文本和變量的奇異性
- Label
- Listbox
- Spinbox
- Scale and TScale
- TSeparator
- Sizegrip
- Custom Widgets
- Canvas
- 生成,檢查和運行Python GUI
- 創建和保存代碼模塊
- 檢查生成的Python模塊
- 執行Python模塊
- 將生成的Python模塊加載到IDE中
- 具有多個頂級Windows的應用程序
- 修改光標
- 使用圖像
- 動態組件
- 菜單
- 重建
- 自動更新支持模塊
- 重用
- 模板
- 從現有項目中借用組件
- 范例
- 結語