作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个由 tk.treeview 创建的表,例如,有 10 列。目标是构建一个带有水平滚动条的 TreeView 控件,控件的 View 宽度设置为大约 4 列,并使用水平滚动条查看其他列。
使用 tk.Frame 作为父部件并使用滚动条,垂直滚动会隐藏标题,所以不要使用它。
平台:WIN 10 python :3.8.6tkinter:8.6
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
# root.columnconfigure(0, weight=1)
# root.rowconfigure(0, weight=1)
columns = [f'Column {i}' for i in range(10)]
x_scrollbar = tk.Scrollbar(root, orient=tk.HORIZONTAL)
x_scrollbar.grid(row=1, column=0, sticky=tk.E+tk.W)
y_scrollbar = tk.Scrollbar(root, orient=tk.VERTICAL)
y_scrollbar.grid(row=0, column=1, sticky=tk.N+tk.S)
tree = ttk.Treeview(root, columns=columns, height=10, show="headings",
xscrollcommand=x_scrollbar.set, yscrollcommand=y_scrollbar.set)
tree.grid(row=0, column=0, sticky=tk.N+tk.S+tk.E+tk.W)
for col in tree['columns']:
tree.heading(col, text=f"{col}", anchor=tk.CENTER)
tree.column(col, anchor=tk.CENTER, width=100)
for i in range(100):
tree.insert('', 'end', values=[i*10+j for j in range(len(columns))])
x_scrollbar['command'] = tree.xview
y_scrollbar['command'] = tree.yview
root.mainloop()
问题是如何将 View 宽度设置为大约 4 列并使用水平滚动条?像这样 ! (没有窗口调整大小)
最佳答案
有一个棘手的方法:
tree.update()
强制更新 TreeView for col in tree['columns']:
tree.heading(col, text=f"{col}", anchor=tk.CENTER)
tree.column(col, anchor=tk.CENTER, width=40) # initially smaller size
tree.update()
for col in tree['columns']:
tree.column(col, width=100) # restore to desired size
关于python - 如何在 tkinter 中查看 TreeView 的部分区域和水平滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64477453/
我是一名优秀的程序员,十分优秀!