Принудительная высота сложенного виджета tkinter - PullRequest
0 голосов
/ 16 июня 2019

У меня есть два виджета (один над другим), которые охватывают все окно в обоих направлениях.Я бы хотел, чтобы тот, что внизу, имел определенную высоту, в частности содержал бы одну строку текста без каких-либо ненужных отступов, в то время как виджет сверху должен охватывать остальную часть высоты окна.

Я попытался поиграться с отступами и параметрами fill, но безрезультатно.Как я могу сложить свои виджеты, заставляя высоту одного виджета внизу?

from tkinter import *

root = Tk()
root.geometry('800x500')

f1 = Frame(root, bg='yellow')
f1.pack(fill='both', expand=True)

prompt = Label(root, text='text here', background='red')
prompt.config(height=1, width=1)
prompt.pack(fill='both', expand=True, pady=0, ipady=0) # fill=X leaves gray padding above and below the label

root.mainloop()

1 Ответ

3 голосов
/ 16 июня 2019

Опция раскрытия указывает менеджеру назначать дополнительное пространство для поля виджета.Если родительский виджет сделан больше, чем необходимо для хранения всех упакованных виджетов, любое превышенное пространство будет распределено среди всех виджетов, для которых параметр расширения имеет ненулевое значение .

Попробуйтеэто:

from tkinter import *

root = Tk()
root.geometry('800x500')

f1 = Frame(root, bg='yellow')
f1.pack(fill='both', expand=True)

prompt = Label(root, text='text here', bg='red')
prompt.pack(fill='x')   # No expand!

root.mainloop()

Взгляните на Мышление в Tkinter , которое я нашел очень полезным для изучения pack().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...