当我注意到如果长行不可见时, ScrolledText 小部件的水平滚动条将消失时,我一直在修改PAGE滚动小部件的实现。事实证明这与水平滚动条无关,是原始的 Tk 行为:
路径名 xview
返回包含两个元素的列表。每个元素都是 0 到 1 之间的实数分数;它们一起描述了窗口中可见的文档水平范围的部分。例如,如果第一个元素为 0.2,第二个元素为 0.6,则 20% 的文本位于左侧屏幕外,中间 40% 在窗口中可见,40% 的文本位于屏幕外 -屏幕右侧。分数仅指窗口中实际可见的行:如果窗口中的行都很短,因此它们完全可见,则返回的分数将为 0 和 1,即使窗口中还有其他行比窗口宽得多的文本。
使用自动隐藏滚动条,垂直滚动会使水平滚动条不断缩小、变宽,有时会消失(随后影响垂直滚动条)。
我怎样才能规避这个问题?
相关来源(主要由 PAGE 生成,还有我为另一个滚动小部件添加的一些内容):
class AutoScroll(object):
"""Configure the scrollbars for a widget."""
def __init__(self, master, cbl=None):
try:
vsb = ttk.Scrollbar(master, orient='vertical', command=self.yview)
except:
pass
hsb = ttk.Scrollbar(master, orient='horizontal', command=self.xview)
try:
self.configure(yscrollcommand=self._autoscroll(vsb, cbl))
except:
pass
self.configure(xscrollcommand=self._autoscroll(hsb, cbl))
self.grid(column=0, row=0, sticky='nsew')
try:
vsb.grid(column=1, row=0, sticky='ns')
except:
pass
hsb.grid(column=0, row=1, sticky='ew')
master.grid_columnconfigure(0, weight=1)
master.grid_rowconfigure(0, …Run Code Online (Sandbox Code Playgroud)