当通过命令制作时,如何更改按钮的列?

How do I change the column of Buttons, when being made by command?

我正在从命令列表中创建按钮,我想知道如何才能在一定数量的按钮后开始在不同的列上创建按钮?

例如:

list = [1,2,3,4,5,6,7,8,9,10]

def func(number):
    some_function()

for number in list:
    button = Button(root, text=number, command=lambda x=number: func(x))
    button.grid()

所以在做了 5 个按钮之后,我想知道我是否可以继续在第二列上制作按钮?

在尝试找到答案后我没有成功,非常感谢您的帮助。

您可以使用列表中项目的索引和 divmod() 函数来计算行和列。另外最好不要使用关键字 list 作为变量名。

# don't use keyword list as variable name
itemlist = [1,2,3,4,5,6,7,8,9,10]

def func(number):
    some_function()

for idx, number in enumerate(itemlist):
    col, row = divmod(idx, 5) # change 5 to other value to suit your case
    button = Button(root, text=number, command=lambda x=number: func(x))
    button.grid(row=row, column=col)