# Scrolled Widgets
出于某些我不了解的原因,Tk人士從未見過適合實現滾動小部件(如“滾動文本”小部件)的合適方法。相反,讓用戶處理滾動條小部件并將它們附加到文本或列表框,我當然不想在構建GUI時忙于滾動小部件所需的所有單獨編程任務。
我特別高興Guilherme Polo在他的Pyttk-samples包中展示了如何構建Scrolledtext和Scrolledtreeview小部件。借用該代碼,我能夠在PAGE中包含此類小部件以及Scrolledlistbox。在4.18版中,我能夠擴展他的軟件包,以便滾動的小部件現在支持鼠標滾輪滾動,滾輪在y方向滾動,而移位輪在x方向滾動。在Linux,Windows和OSX中可以使用Y方向滾動。但是,X方向滾動僅在Linux和Windows中有效。我不明白為什么它在OSX中不起作用,并且歡迎任何煽動。
可以從“微件工具欄”中選擇一個滾動的微件,然后將其放置在GUI中,而PAGE將包括實現該滾動微件所需的所有Python支持代碼。我添加的滾動窗口小部件沒有用T命名,因為它們不是官方的ttk窗口小部件。 Scrolledtextbox有一個普通的文本子窗口小部件,我選擇將其中的“ wrap”默認設置為“ none”。
盡管Polo使用ttk小部件實現了他的代碼,但我也使用他的想法來實現了滾動tk小部件。實際上,在可能的情況下,我會優先使用tk小部件而不是ttk小部件。例如,我僅基于ttk小部件使用ScrolledTreeview和Scrolledcombobox。我要感謝Polo的想法,但對于我解釋他的想法時所犯的任何錯誤,他概不負責。
滾動的小部件是包含所需滾動條和基本小部件的復合小部件。因此,要設置屬性或應用綁定,請首先選擇基本內部小部件。
將滾動的窗口小部件放置到容器窗口中時,顯示的圖像將顯示垂直滾動條,以方便識別。最好的是外觀類似于執行GUI時顯示的外觀,因為按照Python代碼的實現,滾動條僅在需要時顯示。我在Python GUI中使用的ttk :: scrollbars中遇到了背景色的麻煩。
這些小部件是復雜的小部件,因此要移動它們或調整其大小,請使用帶有Button-1的Control。滾動條是ttk :: scrollbar窗口小部件,僅在需要時才顯示。例如,當項目超出分配的空間時。
在Scrolledtext小部件內插入文本時,請像對待文本小部件一樣對待它。例如,使用類似
~~~
obj = self.Scrolledtext1
obj.insert(END, "This is text to be inserted")
~~~
在剪切或復制滾動小部件時,我使用小部件樹來輕松選擇整個小部件,而不僅僅是內部小部件。
要更改正在滾動的窗口小部件的屬性,必須從“窗口小部件樹”中選擇該窗口小部件,然后在“屬性編輯器”中進行所需的更改。 例如,要更改Scrolledtext小部件的背景顏色,請在“小部件樹”中的Scrolledtext條目下選擇縮進的文本小部件,然后在“屬性編輯器”中更改背景顏色。
幾個滾動的小部件提供自動縮放; 也就是說,當窗口小部件實際上大于查看區域滾動條時。 但是,用戶無法更改滾動條的任何屬性。 這主要影響背景顏色,這是在首選項中設置的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的應用程序
- 修改光標
- 使用圖像
- 動態組件
- 菜單
- 重建
- 自動更新支持模塊
- 重用
- 模板
- 從現有項目中借用組件
- 范例
- 結語