繁体   English   中英

如何为按钮创建行和列?

[英]How can I create rows and columns for buttons?

我正在制作自己的版本的minesweeper,并且需要像在minesweeper中一样在8x8网格中显示我的按钮。

我已经尝试过使用'button.pack(side = tk.LEFT)',但这会将按钮显示为1行

对于我在范围(64)中:

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

我以为这会显示到窗口的边缘,但是会出现在窗口的边缘。

打包管理器无法处理这样的事情。 您可以通过制作一堆框架并单独包装每一列或每一行来做到这一点,但是最简单的方法是远离tkinter的包装管理器,并开始为此使用网格管理器。 以下是gui的一些示例代码,该代码什么都不做,只显示一个网格:

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()

样例网格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()

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM