Tkinter Treeview调整树视图的大小以适合屏幕

问题描述

我在让Treeview调整到tkinter窗口的大小时遇到​​了一个小问题,似乎无法从Google得到答案。下面的代码工作正常,除了“屏幕”内部似乎固定大小。我已经尝试过各种版本的“填充”和“拉伸”,但似乎无法正确完成。谁能为我阐明一下?

代码

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",anchor='e')
Box.column("F-100",anchor='e')
Box.column("F-24",anchor='e')
Box.column("POS",width=75,anchor='center')
Box.column("NEG",anchor='center')
Box.column("NULL",anchor='center')
Box.column("VOLUME",width=90,anchor='center')
Box.column("VOLUME-FUT",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()

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

谢谢

关闭

解决方法

尝试先说一遍:

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)

希望您发现此答案有帮助,请让我知道是否有任何错误或疑问。

欢呼