Найти - Пользователи
Полная версия: Frame или второй простой вопрос
Начало » GUI » Frame или второй простой вопрос
1
Art-master
Добрый вечер!

Итак, теперь у меня следующий вопрос: каким образом можно растянуть frame на все окно?
Т.е. чтобы рамка заполнила все пространство окна.
4kpt_II
Это не нужно. Хотя реально можно.
Для этого нужно использовать дополнительный метод _propagate() каждого менеджера геометрии объектов (pack, grid, place). Не забудьте предварительно назначить размеры рамки, чтобы они были равны размерам базового окна.
Хотя зачем это делать, для меня навсегда останется тайной Прикол рамки как раз в том, чтобы обосабливать определенные группы виджетов поэтому она их и обтягивает как “презервуар”. Кроме того она служит базовым суперклассом для большинства графических моделей.

P.S. Будут вопросы - пишите.
Art-master
А как юзать этот метод? Может, вы имели ввиду аргумент метода? А то как-то не клеется, метод у метода.

К вопросу, зачем мне это надо: на самом деле мне надо устроить окно так, чтобы оно делилось на 2 части с помощью grid. На самом деле мне надо, чтобы рамка заполнила каждую из 2 половин окна. А в каждой рамке находились бы определенные виджеты.

P.S. Если я решил сделать не самым удобным спосбом - так и напишите, и за одно напишите, пожалуйста, как можно сделать удобнее.
4kpt_II
Не вопрос. Держите решение. Но рамочки нужны не для того, чтобы делить области пополам. Можно использовать PanedWindow или вообще другие решения. У рамочек есть несколько важных задач. И среди них, как назло, нет задачи разделения экрана на части

import Tkinter
#
root = Tkinter.Tk()
root.geometry("400x400+100+100")
#
frame_l = Tkinter.Frame(root, width=200, height=400, bg="red")
frame_l.grid(row=0, column=0)
frame_l.grid_propagate(0)
button_l = Tkinter.Button(frame_l, text="push_me")
button_l.grid(row=0, column=0)
#
frame_r = Tkinter.Frame(root, width=200, height=400, bg="grey")
frame_r.grid(row=0, column=1)
frame_r.grid_propagate(0)
button_r = Tkinter.Button(frame_r, text="push_me")
button_r.grid(row=0, column=0)
#
root.mainloop()

P.S. Будут вопросы - пишите…

P.S.S. Если Вам нужна все-таки ювелирная точность и соблюдение пропорций можете глянуть в сторону другого метода геометрии объектов: place()
Art-master
Я понял! Спасибо!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB