Hej w tkinter mam napisana apliacje z 5-cioma zakladkami (Notebook). Kazda zakladka oczywiscie ma rozna liczbe widgetow i niestety obecnie rozmiar kazdej zakladki wynosi tyle ile rozmiar najwiekszej z nich. Jak moge zrobic zeby po zmianie zakladki rozmiar okna automatycznie sie dopasowal do rozmiaru zakladki?
0
0
W sensie brzydko to wyglda jak jest zakladka z 3 widgetami i mnostwo wolnego miejsca. Chcialbym zeby lewy gorny rog okna pozostawal w miejscu i po prostu przy zmianie zakladki okno sie odpowiednio zwezalo\rozszerzalo.
0
import tkinter as tk
from tkinter import ttk
# root window
root = tk.Tk()
root.geometry('400x300')
root.title('Notebook Demo')
# create a notebook
notebook = ttk.Notebook(root)
notebook.pack(pady=10, expand=True)
# create frames
frame1 = ttk.Frame(notebook, width=400, height=280)
frame2 = ttk.Frame(notebook, width=800, height=480)
frame1.pack(fill='both', expand=True)
frame2.pack(fill='both', expand=True)
# add frames to notebook
notebook.add(frame1, text='General Information')
notebook.add(frame2, text='Profile')
def on_tab_change(event):
tab = event.widget.tab('current')['text']
if tab == 'General Information':
print('1')
root.geometry('400x300')
elif tab == 'Profile':
print('2')
root.geometry('800x400')
notebook.bind('<<NotebookTabChanged>>', on_tab_change)
root.mainloop()
0
@Arthan: dzieki to dziala tylko chcialbym zeby to dzialalo tak ze najpierw robie sobie frame'y, pakuje do nich widgety i na koncu chce pobrac rozmiar kazdego frame'a i ustawic jako rozmiar glownego okna. Jak moge to zrobic?