是否可以将Tkinter中的按钮网格放在另一个框架内?
我想创建一个类似于tic-tac-toe的游戏,并希望使用网格功能来放置gamesquares(这将是按钮).但是,除了游戏板之外,我还想在GUI中使用其他东西,因此在一个网格中放置所有东西并不理想.
为了显示:
O | X | X |
---------- |
O | O | X | Player 2 wins!
---------- |
X | O | X |
Run Code Online (Sandbox Code Playgroud)
tic tac toe board在一个由所有按钮组成的网格中,'player 2 wins'是一个框架内的标签.
这是对我正在尝试做的过度简化,所以请耐心等待,因为到目前为止我设计程序的方式(电路板是动态创建的),网格最有意义.
编辑:有一个想法,但当我运行它,没有任何反应?如果我取出帧位,它会.有任何想法吗?
from Tkinter import *
root = Tk()
b = Button(root, text = "1")
b.grid(row=1, column=3)
b2 = Button(root, text = "2")
b2.grid(row=1, column=4)
f = Frame(root, bg = "red")
f.pack(side=RIGHT)
root.mainloop()
Run Code Online (Sandbox Code Playgroud) 所以我有一个由一系列点组成的正方形.在每一点都有一个相应的值.
我想要做的是建立一个这样的字典:
class Point:
def __init__(self, x, y):
self._x = x
self._y = y
square = {}
for x in range(0, 5):
for y in range(0, 5):
point = Point(x,y)
square[point] = None
Run Code Online (Sandbox Code Playgroud)
但是,如果我稍后创建一个新的点对象并尝试使用该点的键访问字典的值,则它不起作用..
>> square[Point(2,2)]
Traceback (most recent call last):
File "<pyshell#19>", line 1, in <module>
square[Point(2,2)]
KeyError: <__main__.Point instance at 0x02E6C378>
Run Code Online (Sandbox Code Playgroud)
我猜这是因为python不认为具有相同属性的两个对象是同一个对象?有没有办法解决?谢谢