ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 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背景颜色。