家兴~ 2020-10-22 16:19 采纳率: 0%
浏览 259

python treeview 设置的滚动条太短怎么办?

import tkinter as tk
from tkinter import ttk

window = tk.Tk()
window.title('图书查询')
window.geometry('1200x700')

yscrollbar = ttk.Scrollbar(window, orient='vertical')
tree = ttk.Treeview(window, columns=('1', '2', '3', '4', '5'), show="headings",yscrollcommand=yscrollbar.set)

tree.column('1', width=150, anchor='center')
tree.column('2', width=150, anchor='center')
tree.column('3', width=150, anchor='center')
tree.column('4', width=150, anchor='center')
tree.column('5', width=150, anchor='center')

tree.heading('1', text='类目')
tree.heading('2', text='书名')
tree.heading('3', text='作者')
tree.heading('4', text='价格')
tree.heading('5', text='库存')

tree.place(x=200, y=150)
yscrollbar.place(x=955,y=150)

window.mainloop()


  • 写回答

1条回答 默认 最新

  • 禾戊之昂 Python领域新星创作者 2024-04-07 11:14
    关注

    在Tkinter中,当你使用ttk.Treeview控件并为其添加滚动条时,滚动条的长度通常是由Treeview控件的内容的高度和窗口大小共同决定的。如果滚动条看起来太短,这通常意味着Treeview控件的高度不够,或者内容太少,不足以填满整个滚动区域。

    要解决这个问题,你可以尝试以下几种方法:

    调整Treeview控件的大小:确保Treeview控件足够大,以便滚动条有足够的空间来滚动。你可以通过调整tree.place()方法中的y参数来增加控件的高度。

    添加更多内容:如果Treeview控件中的内容太少,滚动条自然会看起来很短。你可以尝试添加更多的行来填充控件。

    使用pack或grid布局管理器:而不是使用place来定位控件,你可以考虑使用pack或grid布局管理器来自动管理控件的大小和位置。这通常可以提供更好的布局控制。

    调整滚动条的宽度:虽然这不会改变滚动条的长度,但你可以通过调整滚动条的宽度来使其看起来更协调。这可以通过在创建滚动条时设置其宽度来实现。

    下面是一个使用grid布局管理器的示例,它可能有助于更好地控制Treeview和滚动条的大小和位置:

    
    ```python
    import tkinter as tk  
    from tkinter import ttk  
      
    window = tk.Tk()  
    window.title('图书查询')  
    window.geometry('1200x700')  
      
    # 使用 grid 布局管理器  
    tree = ttk.Treeview(window, columns=('1', '2', '3', '4', '5'), show="headings")  
    yscrollbar = ttk.Scrollbar(window, orient='vertical', command=tree.yview)  # 注意这里使用 command 而不是 yscrollcommand  
      
    # 设置 Treeview 和 Scrollbar 的列和标题  
    tree.column('1', width=150, anchor='center')  
    tree.column('2', width=150, anchor='center')  
    tree.column('3', width=150, anchor='center')  
    tree.column('4', width=150, anchor='center')  
    tree.column('5', width=150, anchor='center')  
    tree.heading('1', text='类目')  
    tree.heading('2', text='书名')  
    tree.heading('3', text='作者')  
    tree.heading('4', text='价格')  
    tree.heading('5', text='库存')  
      
    # 使用 grid 来放置控件  
    tree.grid(row=0, column=0, sticky="nsew")  # 允许 Treeview 在四个方向上扩展  
    yscrollbar.grid(row=0, column=1, sticky="ns")  # 允许 Scrollbar 在垂直方向上扩展  
      
    # 配置 Treeview 的滚动条  
    tree.configure(yscrollcommand=yscrollbar.set)  # 配置 Treeview 使用 Scrollbar  
      
    # 调整 Treeview 的行和列以填充窗口  
    window.rowconfigure(0, weight=1)  # 允许 Treeview 在垂直方向上扩展  
    window.columnconfigure(0, weight=1)  # 允许 Treeview 在水平方向上扩展  
      
    window.mainloop()
    
    

    ```

    评论

报告相同问题?

悬赏问题

  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划