Как заставить tk.Button () заполнять ширину окна при использовании .grid ()? - PullRequest
0 голосов
/ 13 июля 2020

Я сделал программу, которая составляет диаграмму ap ie с использованием matplotlib.pyplot, и у нее есть GUI, который я сделал с помощью tkinter, и у меня проблемы с кнопками. Они не подходят по ширине окна! Я впервые использую tkinter, поэтому не знаю, как это сделать. Вот скриншот

Вот фрагмент моего кода, который упаковывает кнопки в окно:

append_btn = tk.Button(
    text="Add values to register",
    command=append
)
make_chart_btn = tk.Button(
    text="Make chart",
    command=make_chart
)
clear_btn = tk.Button(
    text="Clear all registered values",
    command=clear
)
exit_btn = tk.Button(
    text="Exit Pie Chart Creator",
    command=_exit_
)
append_btn.grid(row=4, column=1, sticky="E")
make_chart_btn.grid(row=4, column=2, sticky="W")
clear_btn.grid(row=5, column=1, sticky="E")
exit_btn.grid(row=5, column=2, sticky="W")

Ответы [ 2 ]

1 голос
/ 13 июля 2020

Предоставленный вами код не работает. Удалите неиспользуемые функции, чтобы они заработали. Тем не менее, флаг:

sticky="WENS"

- это то, что вы, вероятно, ищете.

Sticky флаг определяет, как развернуть виджет, если результирующая ячейка больше, чем сам виджет. В вашем случае вы хотите заполнить ячейку и расширить ее во всех направлениях.

Таким образом, итоговое окно может выглядеть так:

import tkinter as tk

append_btn = tk.Button(
    text="Add values to register",
)
make_chart_btn = tk.Button(
    text="Make chart",
)
clear_btn = tk.Button(
    text="Clear all registered values",
)
exit_btn = tk.Button(
    text="Exit Pie Chart Creator",
)


fill="WENS"
append_btn.grid(row=4, column=1, sticky=fill)
make_chart_btn.grid(row=4, column=2, sticky=fill)
clear_btn.grid(row=5, column=1, sticky=fill)
exit_btn.grid(row=5, column=2, sticky=fill)

tk.mainloop()
0 голосов
/ 13 июля 2020

Вы должны добавить параметры ширины и высоты в конструкторе кнопки:

button = tk.Button(root, text, width=your_size, height=your_size, command)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...