Как и другие указали, как установить рамку размера * stati c, используя grid_propagate()
, я покажу вам, как настроить размер рамки автоматически.
Вам нужно указать строку и столбец, чтобы развернуть этот кадр. Это делается с columnconfigure()
и rowconfigure()
. Затем вам нужно указать рамке придерживаться со всех сторон sticky='nsew'
. Добавление виджетов в рамку ничем не отличается от любого другого контейнера. Просто скажите виджету, что он находится в кадре.
Одна потенциальная проблема, которую я вижу, это то, что вы перезаписываете Frame()
в этой строке: Frame = LabelFrame(root, text="Test", width = 200)
. Это хороший пример, почему вы не должны использовать импорт *
. Вместо этого выполните import tkinter as tk
и используйте префикс tk.
для всего, что ему нужно.
Пример:
import tkinter as tk
root = tk.Tk()
root.geometry('400x300')
root.columnconfigure(0, weight=1)
root.rowconfigure(0, weight=1)
frame = tk.LabelFrame(root, text='Test', width=200)
frame.grid(row=0, column=0, sticky='nsew')
label = tk.Label(frame, text='label').grid(row=0, column=0)
root.mainloop()
Результаты:
Обновление:
Если вы хотите что-то сказать c, убедитесь, что вы определили как высоту, так и ширину. Если вы определите только один или другой, вы не увидите рамку в окне.
Для тестируемого примера для кадра c размер рамки:
import tkinter as tk
root = tk.Tk()
root.geometry('400x300')
root.rowconfigure(0, weight=1)
root.columnconfigure(0, weight=1)
frame = tk.LabelFrame(root, text='Test', height=200, width=200)
frame.grid(row=0, column=0)
frame.grid_propagate(False)
label = tk.Label(frame, text='label').grid(row=0, column=0)
root.mainloop()
Результаты: