Кнопки в сетке Tkinter не одинакового размера
Красная и синяя кнопки должны быть одинакового размера и должны пропорционально друг другу менять свой размер при изменении размера окна. Вот мой код
import tkinter as tk
root = tk.Tk()
text = tk.Text(root)
text.grid(row=0, column=0, columnspan=2, padx=10, pady=10, sticky=tk.NSEW)
text.insert(1.0, 'Количество компанетов: {}'.format(count-2))
for stren in new_lest:
if new_lest.index(stren) != -1:
text.insert(1.0, '{}\n'.format(stren))
text.configure(state=tk.DISABLED)
comp_count = tk.Label(text='')
export = tk.Button(bg='red').grid(row=1, column=0, padx=10, pady=10, sticky=tk.NSEW)
exit_prog = tk.Button(bg='blue').grid(row=1, column=1, padx=10, pady=10, sticky=tk.NSEW)
root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)
root.mainloop()
Ответы (1 шт):
Для колонок, в которых находятся кнопки, нужно указать одинаковый вес, тогда кнопки будут расширяться одинаково:
root.grid_columnconfigure(0, weight=1)
root.grid_columnconfigure(1, weight=1)
Вы задали вес 1 только для 0-й колонки (где лежит первая кнопка), а у 1-й колонки (где лежит вторая кнопка) по умолчанию вес 0, из-за этого первая колонка "перевешивает" - занимает максимально возможную ширину, а вторая колонка занимает минимальную ширину.
Принцип примерно такой:
ширина_колонки = общая_ширина_контейнера / сумма_весов_всех_колонок * вес_данной_колонки
В итоге, если вес колонки = 0, и есть другие колонки с ненулевым весом, то эта колонка будет пытаться схлопнуться полностью (т.к. последний множитель в формуле выше равен нулю), правда она это не сможет сделать, если в этой колонке есть какие-то виджеты - просто виджет в этой колонке ужмется до минимального размера.
Аналогично работает и со строками.
