# Defaults and Preferences
在PAGE開發的早期,我考慮完全放棄從Virtual Tcl派生的首選項,這主要是因為許多首選項與對PAGE沒有意義的功能有關。但是,我真的不喜歡PAGE中的灰色背景,而是想將其更改為我最喜歡的背景顏色-小麥。另外,我認為應該與用戶共享功能。做出這個決定之后,我發現這是考慮允許用戶使用一種顏色方案來運行PAGE的一個小步驟,同時生成具有不同顏色方案的Python GUI。關于字體也發生了類似的想法。之所以開始,是因為默認字體對于我的老年人來說太小了。因此,一件事導致另一件事,這成為在哪里停止的問題。在4.0版中,我實現了由前景色和背景色以及PAGE和生成的GUI的單獨字體組成的配色方案。我還試圖提供合理的突出顯示顏色。我嘗試在生成的代碼中提供有用的信息,以便您可以看到我要執行的操作,從而可以自定義結果。
操縱顏色的另一種說法是,不利用顏色,就不是真正利用Tk。 我不太了解ttk樣式,我想問一下,如果您發現更好的方法甚至做某事無法做到的事情,請讓我知道,我會很樂意使用它;其次,討厭嘗試強加我的風格 口味,我再次歡迎發表評論。 還可以說,我已經使用淺色(尤其是小麥色)完成了大部分開發和測試工作。 這意味著可以期望在淺色下效果更好。 我還測試并嘗試使事物在藍色背景和白色前景下工作。
讓我在這里澄清默認和首選項的含義。 默認值是內置屬性值,除非PAGE用戶專門為各個GUI小部件設置它們,否則它們將用于顏色,背景和前景以及字體選擇和大小。 默認值還包括PAGE用于顯示其界面窗口的顏色和字體。 首選項是用戶指定的PAGE所使用的某些屬性的替代。 可以使用屬性編輯器更改各個窗口小部件屬性。
可以從多個來源派生默認值。 首先,如果沒有采取其他措施,則以Tk默認值較小的灰色世界為準。 這些默認值可能會被.pagerc文件中的值所覆蓋,該文件是從PAGE的先前執行中保存的,在PAGE中,用戶對默認值進行了首選項的保存。 那些保存的首選項始終可以重新指定和保存。 當PAGE用戶指定或打開一個現有的生成的GUI“ .tcl”文件時,覆蓋GUI默認值的第三個來源就會發揮作用。 在這種情況下,用于進一步GUI開發的默認值與保存文件時生效的默認值匹配。 也就是說,當您打開現有的GUI“ .tcl”以進行進一步開發時,PAGE將使用在創建GUI的較早時間生效的GUI默認設置,而PAGE會忽略當前的默認設置。 第三種方式是4.0版的增強功能。
請注意,.pagrc是可編輯的文本文件。 盡管我有時對其進行了編輯,但這不是必需的,并且可能會引起問題-這就是“首選項”窗口的用途。
C混亂至少來自兩個方面。 首先,實際上有兩組首選項,(1)PAGE程序的首選項,以及(2)用于生成的GUI的首選項。 另一個來源是在Tk環境中有多種指定首選項的方法。 對于ttk小部件,必須使用主題和樣式來操縱顏色和字體,但不幸的是,許多方面尚未記錄,彌補了ttk代碼實現或設計中的一些嚴重缺陷。 通過實驗和谷歌搜索,我發現了一些可行的方法。 再次,我從Guilherme Polo獲得了巨大的幫助,以解決我在使用ttk樣式時遇到的重要問題。 甚至現在,與我的實現相關聯的PAGE中仍有一些令人不安的工件。 同樣,歡迎提出建議。
毫無疑問,如果用戶堅持使用默認值,事情會變得更容易。 但是隨后,人們陷入了一個沉悶的灰色世界,在Linux和Microsoft PC上只有很小的字體。 (我認為Tk默認灰色為#d9d9d9,也稱為X11顏色gray9。)
讓我們從簡單的偏好開始。 PAGE具有幾個簡單的首選項,例如是不使用自動生成的別名還是相對放置(請參見[相對位置](use.md))以及放置小部件的網格的粒度。 這些很簡單,甚至可以作為用戶可設置的選項刪除。 當將新功能添加到PAGE時,它們就包括在內,但是現在我幾乎總是堅持使用新功能,并且很少測試舊版功能是否仍能正常工作。 因此,我建議您堅持使用初始設置。 最近,一個用戶向我指出了相對放置問題,因此我回過頭來對絕對放置進行了一些額外的測試和調試,因此我對絕對放置更有信心。 (如果取消選中“使用相對位置生成Python”項,則將獲得絕對位置。)同時,我生成了一個hack,可減輕標簽框架的相對位置問題。
處理[默認來源](use.md)的選項是用戶實際上可能想要或可能不想要的選項,因此它實際上屬于首選項。
在用戶要求PAGE測試標識符是否為合法的Python標識符之后,我實施了一個標識符是否為合法的Python 2標識符的測試(請參閱[命名約定](use.md))。 您可以在“首選項”窗口中選擇此測試。 PAGE檢查命令條目中的命令屬性以及validatecommand和invalidcommand選項。 如果條目的語法不正確,則代碼生成將停止,Python控制臺將關閉,并選擇有問題的窗口小部件。
在GUI的情況下,首選項更加困難,因為一個人選擇的是默認值,當在與開發系統不同的操作系統上執行該應用程序時,該默認值可能對生成的應用程序的用戶不可用。 兩種系統上可能沒有相同的字體和顏色。 您可能會接受一些有關PAGE的默認設置,但實際上是希望控制要在應用程序中使用的顏色和字體等內容。 我正在Linux上進行開發工作,并且面向該操作系統。
最后,我有一個問題,在知道任何首選項之前,應設置哪些默認值。 盡管我不喜歡它們,但我已將PAGE設置為使用Tk默認顏色和字體。 也就是說,PAGE用作ttk小部件的默認背景-#d9d9d9。 因此,請選擇“文件”->“首選項”,并使該程序表現最佳。
請注意,當人們在“首選項”中進行更改時,只要選擇右上角的復選標記,它們就會提交。 同時,它們被寫入.pagerc文件中,以便在用戶下次調用PAGE時被利用。 如果用戶要放棄在“首選”窗口中執行的操作,則選擇支票旁邊的樣式化“ x”,整個窗口將消失并且不保存任何內容。 在PAGE中,從首選項派生的幾個變量是在程序啟動時設置的。 如果您想更改首選項,我絕對建議您打開PAGE,進行更改,通過選擇對勾將其保存,然后退出PAGE。 重新啟動時,它們應該生效。
一個陷阱仍然存在。 如果您在指定了一種配色方案的情況下啟動了一個項目,并將該項目保存在GUI“ .tcl”文件中,然后更改了顏色或字體首選項,然后重新加載了tcl文件,您會發現原始顏色和字體首選項仍在 影響; 它們保存在“ .tcl”中。 我強調這一點是因為我被它抓住了。
還有一點是,如果在安裝過程中沒有刪除“ .pagerc”文件,則升級到4.0版時可能會遇到問題。
從版本4.17開始,存在一個首選項,允許用戶在空間中指定壓痕寬度。 就像指定標簽寬度一樣,但是PAGE不使用標簽來存儲Python文件。 同樣,Python模塊將使用空格保存。 縮進寬度的默認值為四個空格。 與其他首選項一樣,該首選項存儲在“ .pagerc”文件中。
在版本4.21中,實現了氣球幫助(工具提示),并且默認字體很小,因此添加了用于指定工具提示字體的首選項。
在版本4.22中,添加了一個首選項,用于指定要在Python控制臺中執行的Python命令。 基本上,它允許在選擇運行按鈕時調用的解釋器在Python 2或Python 3之間進行選擇。
在版本4.23中,添加了一個首選項,用于指定要保留為整數的后臺文件級別的數量。 空白或零表示將不保留任何備份。
同樣,在會話期間更改首選項可能會導致意外結果。 調用PAGE,更改首選項,然后退出。 在首次保存項目后進一步更改首選項將在首次保存時有效地保留GUI首選項,直到涉及該項目的其他會話為止。
- 介紹
- 更新記錄
- 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的應用程序
- 修改光標
- 使用圖像
- 動態組件
- 菜單
- 重建
- 自動更新支持模塊
- 重用
- 模板
- 從現有項目中借用組件
- 范例
- 結語