# 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的应用程序
- 修改光标
- 使用图像
- 动态组件
- 菜单
- 重建
- 自动更新支持模块
- 重用
- 模板
- 从现有项目中借用组件
- 范例
- 结语