Как я могу создать строки и столбцы для кнопок? - PullRequest
0 голосов
/ 19 декабря 2018

Я делаю свою собственную версию тральщика, и мне нужно отобразить мои кнопки в сетке 8x8, как в тральщике.

Я уже пытался использовать 'button.pack (side = tk.LEFT)'но это отображает кнопки в виде 1 строки

для i в диапазоне (64):

    button = tk.Button(frame,
                        text="0",
                        command=randomnum)
    button.pack(side=tk.LEFT)

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

1 Ответ

0 голосов
/ 19 декабря 2018

Менеджер пакетов не может справиться с чем-то подобным.Вы можете сделать это, собрав несколько кадров и упаковав каждый столбец или строку по отдельности, но самый простой способ - отойти от менеджера пакетов tkinter и начать использовать для этого менеджер сетки.Вот пример кода для графического интерфейса, который ничего не делает, но показывает сетку:

from tkinter import Tk, Button

class maingui:
    def __init__(self, master):
        self.master=master
        master.title("sample gui")

        self.button=Button(text="1")
        self.button.grid(row=1, column=1)

        self.button=Button(text="2")
        self.button.grid(row=1, column=2)

        self.button=Button(text="3")
        self.button.grid(row=1, column=3)

        self.button=Button(text="4")
        self.button.grid(row=2, column=1)

        self.button=Button(text="5")
        self.button.grid(row=2, column=2)

        self.button=Button(text="6")
        self.button.grid(row=2, column=3)

        self.button=Button(text="7")
        self.button.grid(row=3, column=1)

        self.button=Button(text="8")
        self.button.grid(row=3, column=2)

        self.button=Button(text="9")
        self.button.grid(row=3, column=3)

root = Tk()
gui = maingui(root)
root.mainloop()

Sample Grid Gui

Если вы хотите, чтобы кнопки были добавленыкак цикл, вы можете сделать что-то вроде:

from tkinter import Tk, Button

class maingui:
    def __init__(self, master):
        self.master=master
        master.title("sample gui")

        a=1
        b=1
        for i in range(1, 65):
            self.button=Button(text=i)
            self.button.grid(row=a, column=b)
            b=b+1
            if b==9:
                b=1
                a=a+1

root = Tk()
gui = maingui(root)
root.mainloop()

enter image description here

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