首页 > 解决方案 > Tkinter 树视图调整树视图的大小以适合屏幕

问题描述

我在让树视图调整到 tkinter 窗口的大小时遇到​​了一个小问题,并且似乎无法从谷歌得到答案。下面的代码工作正常,除了它在“屏幕”内似乎有固定大小。我尝试了各种版本的“填充”和“拉伸”,但我似乎无法做到正确。任何人都可以为我阐明这一点吗?

代码:

import tkinter as tk
from tkinter import ttk

screen = tk.Tk() 
screen.title('This One')
screen.geometry('890x400')

cols = ('TOKEN', 'F-500', 'F-250', 'F-100', 'F-24', 'POS','NEG', 'NULL', 'VOLUME', 'VOLUME-FUT', 'RPP')
box = ttk.Treeview(screen, columns=cols, show='headings')
for col in cols:
    box.heading(col, text=col)
    box.grid(row=1, column=0, columnspan=2)


box.column("TOKEN", width=95)
box.column("F-500", width=85, anchor='e')
box.column("F-250", width=85, anchor='e')
box.column("F-100", width=85, anchor='e')
box.column("F-24", width=85, anchor='e')
box.column("POS", width=75, anchor='center')
box.column("NEG", width=75, anchor='center')
box.column("NULL", width=75, anchor='center')
box.column("VOLUME", width=90, anchor='center')
box.column("VOLUME-FUT", width=90, anchor='center')
box.column("RPP", width=45, anchor='center')

showScores = tk.Button(screen, text="Update", width=15).grid(row=10, column=1)
closeButton = tk.Button(screen, text="Close", width=15, command=exit).grid(row=10, column=0)

screen.mainloop()

这可能是一件非常简单的事情,但我就是看不到!

谢谢,

莫特

标签: tkinterresizetreeview

解决方案


试着先这样说:

screen.grid_rowconfigure(1, weight=1)
screen.grid_columnconfigure(0, weight=1)

并确保还说sticky='nsew'树视图,例如:

box.grid(row=1, column=0, columnspan=2,sticky='nsew') #say sticky='nsew'

这就是你所说的适合屏幕吗?当您调整窗口大小时,这将确保树视图始终适合屏幕。

其他方法是禁用整个窗口的大小调整,通过说screen.resizable(0,0)

希望您发现此答案对您有所帮助,如果有任何错误或疑问,请告诉我。

干杯


推荐阅读