问题描述
我在让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)
希望您发现此答案有帮助,请让我知道是否有任何错误或疑问。
欢呼