Я ищу способ заставить Tkinter Frames вести себя примерно так при изменении размера:
from Tkinter import *
w = Tk()
w.aspect(1,1,1,1)
w.mainloop()
Итак, я бы хотел, чтобы этот код здесь:
import Tkinter as tk
from Tkconstants import *
r=tk.Tk()
content_frame=tk.Frame(r,borderwidth=5,relief=GROOVE)
content_frame.grid(row=0,column=0,sticky=(N,S,E,W))
tk.Label(content_frame,text='content').pack()
pad_frame=tk.Frame(r,borderwidth=5,relief=GROOVE)
pad_frame.grid(row=1,column=0,sticky=(N,S,E,W))
tk.Label(pad_frame,text='-pad-').pack()
r.rowconfigure(0, weight=1)
r.rowconfigure(1, weight=1)
r.columnconfigure(0, weight=1)
r.mainloop()
который в основном создает 2 фрейма, один из которых должен содержать некоторый контент (в моем приложении этот фрейм содержит граф mathplotlib, размер которого можно изменить), а другой просто для заполнения.
Чтобы вести себя при изменении размера, следуйте этим правилам:
- размер фрейма содержимого изменяется с фиксированным соотношением сторон (скажем, он всегда должен быть квадратным)
- рамка пэда занимает оставшееся (вертикальное) пространство
Любые идеи? Давно читаю мануалы и не могу найти что-то подходящее.
-Дэниел
aspect
? - person Gary Kerr   schedule 13.05.2013