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

社会演员多 python 187

原文标题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 个按钮之后,我想知道是否可以继续在第二列上制作按钮?

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

原文链接:https://stackoverflow.com//questions/71462786/how-do-i-change-the-column-of-buttons-when-being-made-by-command

回复

我来回复
  • acw1668的头像
    acw1668 评论

    您可以使用列表中项目的索引和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)
    
    2年前 0条评论