Tkinter: я не понимаю, как работает сетка (пытается создать столбцы одинакового размера) - PullRequest
0 голосов
/ 30 октября 2018

Моя цель - создать 3 одинаковых по размеру столбца в tkinter, а затем заполнить их чем угодно. То, что я пытаюсь сделать, похоже на систему сетки в начальной загрузке, но в tkinter добавление чего-либо в столбец делает столбец больше.

Тогда у меня вопрос, как вы можете создать столбцы фиксированного размера?

Спасибо!

код, который создает столбцы, которые не равны:

class MainPage(tk.Frame):
    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent, background = "black")

        self.columnconfigure(0, weight = 1)
        self.columnconfigure(1, weight = 1)
        self.columnconfigure(2, weight = 1)
        self.rowconfigure(0, weight = 1)
        self.rowconfigure(1, weight = 1)

        label = tk.Label(self, text = "Weather", fg = "white", bg="green", font = LARGE_FONT)
        label.grid(row = 0, column = 0, padx = 0, pady = 0, sticky = 'new')

        label = tk.Label(self, text = "Time", fg = "white", bg="blue", font = LARGE_FONT)
        label.grid(row = 0, column = 1, pady = 0, sticky = 'nwe')

        label = tk.Label(self, text = "Test", fg = "white", bg="red", font = LARGE_FONT)
        label.grid(row = 0, column = 2, pady = 0, sticky = 'nwe')

        label2 = tk.Label(self, text = "News", fg = "white", bg="black", font = LARGE_FONT)
        label2.grid(row = 1, column = 0, padx = 0, pady = 10, sticky = 'sw')

1 Ответ

0 голосов
/ 30 октября 2018

grid имеет опцию специально для столбцов и строк одинакового размера: uniform. Он принимает любую строку в качестве значения, и все столбцы с одинаковым значением будут иметь одинаковый размер.

В вашем случае это будет выглядеть так:

self.columnconfigure(0, weight = 1, uniform="x")
self.columnconfigure(1, weight = 1, uniform="x")
self.columnconfigure(2, weight = 1, uniform="x")
...