Jak dopasować rozmiar okna aplikacji do obecnie otwartej zakładki w Notebooku (Tkinter)

0

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

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?

1 użytkowników online, w tym zalogowanych: 0, gości: 1