Python tkinter中一行代码中的多个按钮

Python tkinter中一行代码中的多个按钮,python,button,tkinter,Python,Button,Tkinter,我需要在Tkinter中创建200个检查按钮,因为我正在创建一个座位选择屏幕。有没有一种方法可以创建所有这些按钮,而不必像在pygame中那样逐行键入它们?到目前为止,我已经试过了,但似乎不起作用。(我不是一个超级聪明的程序员,所以这可能是一个愚蠢的错误) 看起来这只是一个语法错误,代码的工作方式是我现在想要的 是的,您可以在循环中创建按钮。如果我在做一个座位表,我会首先用一个简单的数据结构来定义它的外观,它可以让您轻松地可视化布局 例如: rows = { "a": " xxxx x

我需要在Tkinter中创建200个检查按钮,因为我正在创建一个座位选择屏幕。有没有一种方法可以创建所有这些按钮,而不必像在pygame中那样逐行键入它们?到目前为止,我已经试过了,但似乎不起作用。(我不是一个超级聪明的程序员,所以这可能是一个愚蠢的错误)


看起来这只是一个语法错误,代码的工作方式是我现在想要的

是的,您可以在循环中创建按钮。如果我在做一个座位表,我会首先用一个简单的数据结构来定义它的外观,它可以让您轻松地可视化布局

例如:

rows = {
    "a": "  xxxx xxxxxxxx xxxx",
    "b": "xxxxxx xxxxxxxx xxxxxx",
    "c": "xxxxxx xxxxxxxx xxxxxx",
}
for row_number, row_letter in enumerate(rows.keys()):
    for seat_number, c in enumerate(rows[row_letter]):
        if c == "x":
            seat = tk.Button(frame1, ...)
            seat.grid(row=row_number, column=seat_number)
然后,您可以迭代这些数据,在有“x”的地方放置一个座位

例如:

rows = {
    "a": "  xxxx xxxxxxxx xxxx",
    "b": "xxxxxx xxxxxxxx xxxxxx",
    "c": "xxxxxx xxxxxxxx xxxxxx",
}
for row_number, row_letter in enumerate(rows.keys()):
    for seat_number, c in enumerate(rows[row_letter]):
        if c == "x":
            seat = tk.Button(frame1, ...)
            seat.grid(row=row_number, column=seat_number)

你说的“像pygame”是什么意思?它还需要一些循环来创建按钮。为什么你认为上面的方法不起作用?它所做的与您期望的不同之处是什么(除了崩溃,因为您尚未定义
klik
)?当然可以在循环中创建小部件。tkinter小部件并没有什么特别之处——它们只是python类。尽管您已经解决了这个问题,但也应该在回答中发布代码。因此,我建议在你开始获得否决票之前,在你的答案中包含一段编辑代码。问题中的代码可以正常工作,因为它是我前面代码中的一个语法错误