我有一个带有 Treeview 小部件和一列的窗口。如果我添加足够的节点以使节点的文本超出窗口宽度,则无法水平滚动,除非我更改列宽以使其比窗口宽度更宽。
这就是我的意思:
我应该能够水平滚动,这样我就可以适应节点的文本,但水平滚动条被禁用。
但是,如果我手动调整列本身的大小,我将能够滚动直到到达列的右边框。
请注意,滚动条适应列宽,而不是文本,文本被留在后面。
self._tree_scrollbar_x = ttk.Scrollbar(self._tree_frame, orient='horizontal', command=self._tree.xview)
self._tree.configure(xscrollcommand=self._tree_scrollbar_x.set)
self._tree_scrollbar_x.grid(row=1, column=0, sticky=(tk.E, tk.W))
Run Code Online (Sandbox Code Playgroud)
有一个resize属性,但仅更改列是否随窗口框架/边框自动调整大小。
我知道这个问题以前曾被问过,但没有可靠的答案,所以这可能是 Tkinter/Ttk 的限制。
非常感谢任何帮助,谢谢。
我在 Python 中有一个非常基本的Treeview设置:
self.tv = ttk.Treeview(top_frame, columns=("#","ID","Name"), selectmode = "browse" )
self.tv.heading('#1', text='#', anchor=W)
self.tv.heading('#2', text='ID', anchor=W)
self.tv.heading('#3', text='Name', anchor=W)
self.tv.column('#1',minwidth=70, width = 70, stretch=NO)
self.tv.column('#2', minwidth = 240, width = 240, stretch=NO)
self.tv.column('#3', minwidth=260, width = 260, stretch=NO)
self.tv.column('#0', minwidth=0, width=0, stretch=NO)
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是可以调整列的大小以使树视图比其容器更宽或更窄。两者都破坏了整个事物的美感。
根据我的阅读,stretch = NO应该禁用此功能,但事实并非如此。我正在 Mac 上使用 Python 2.7.9 测试 GUI。我知道某些小部件在 Mac 上无法 100% 工作,那么我是否做错了什么,或者这就是我所期望的?