Python 如何为按钮创建行和列?
我正在制作我自己版本的“扫雷舰”,我需要像“扫雷舰”一样在8x8网格中显示我的按钮 我已经尝试过使用“button.pack(side=tk.LEFT)”,但这会将按钮显示为一行 对于范围(64)内的i:Python 如何为按钮创建行和列?,python,tkinter,Python,Tkinter,我正在制作我自己版本的“扫雷舰”,我需要像“扫雷舰”一样在8x8网格中显示我的按钮 我已经尝试过使用“button.pack(side=tk.LEFT)”,但这会将按钮显示为一行 对于范围(64)内的i: 我原以为这会显示到窗口的边缘,但它会显示在窗口的边缘。包管理器无法处理类似的事情。您可以通过制作一组框架并单独打包每一列或每一行来实现这一点,但最简单的方法是离开tkinter的打包管理器,开始使用网格管理器来实现这一点。下面是gui的一些示例代码,它不做任何事情,但向您显示一个网格: fro
我原以为这会显示到窗口的边缘,但它会显示在窗口的边缘。包管理器无法处理类似的事情。您可以通过制作一组框架并单独打包每一列或每一行来实现这一点,但最简单的方法是离开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()
如果要将按钮添加为循环,可以执行以下操作:
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()
除非使用一组帧,否则
包
几何体对此不起作用。检查tkinter
文档,了解网格
几何图形的信息。这里有几个小教程,让你开始学习。谢谢你,但是我正在为如何在我的代码中实现它而努力。我刚刚包括了在for循环中创建的64按钮网格的完整代码。很明显,按钮上没有函数或任何东西,我只是将它们命名为数字,但这段代码将为您提供一个8x8网格。所有内容缩进是否正确?如果按钮未作为\uuuuu init\uuuuu
的一部分包含,则会出现该错误。确保其缩进与上面的缩进完全相同。我刚刚又测试了一次。真管用,太棒了。如果此答案解决了您的问题,如果不太麻烦,请选择“已接受”。一般来说,当你将来提出问题时,通常的好做法是接受你最终使用的问题,这既可以帮助未来的问题观众,也可以提高回答者的声誉。
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()