Python с TkInter - кнопки автоматического изменения размера, но с одинаковым размером - PullRequest
0 голосов
/ 07 марта 2019

Я работаю с Python и TkInter.

Мне нужно разместить две кнопки на экране с изменяемыми размерами, чтобы при увеличении размера экрана кнопки тоже. Я нашел, как это сделать в здесь .

Я также нашел, как вес в сетке работает в здесь и получил то, что хотел:

Две кнопки одинакового размера

Теоретически это работает отлично, если я использую вес 3 и 1, я должен получить столбец в 3 раза больше второго, если я использую 1 и 1, я получаю 50% каждый ...

Моя проблема в том, что текст одной кнопки больше, чем другой. Я хочу, чтобы мои кнопки оставались с 50% каждая, и это не то, что я получаю:

Две кнопки не одинакового размера

Мой код:

class MyGUI:

def __init__(self, master):
    self.master = master

    self.btn1 = Button(master, text='X')
    self.btn2 = Button(master, text='XXXXX')

    self.btn1.grid(row=0, column=0, sticky=N+S+E+W)
    self.btn2.grid(row=0, column=1, sticky=N+S+E+W)

    for x in range(2):
        Grid.columnconfigure(master, x, weight=1)

root = Tk()
my_gui = MyGUI(root)
root.mainloop()

Так как мне сделать так, чтобы кнопки оставались с 50% каждая независимо от текста в них?

1 Ответ

0 голосов
/ 07 марта 2019

Вы можете указать параметр minsize в columnconfigure(...), как показано ниже:

# get the width of the bigger button
minwidth = max(self.btn1.winfo_reqwidth(), self.btn2.winfo_reqwidth())
for x in range(2):
    Grid.columnconfigure(master, x, weight=1, minsize=minwidth)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...