我目前正在尝试创建一个GUI,用于与.txt文件中的行进行交互,以便对某些冷藏箱的内容进行排序。但是,当我创建许多带有for循环的按钮时,很难与特定行交互,例如:
def create_boxes(self):
for r in range(0,10):
for c in range(0,10):
self.button = Button(root, text='%s.%s'%(r,c),borderwidth=1 ,command= lambda: self.replace_line("Freezercontent.txt", r*10+c , input("What would you like in this slot"))).grid(row=r,column=c+5)
在replace line函数中,第二个参数是特定按钮需要更改的行号。我的解决方案不起作用,因为当使用命令调用lambda函数时,for循环已经完成。意味着我点击的每一个按钮只会改变最后一行
如何访问用text="somename"
参数指定的按钮名称?还是有更聪明的方法
谢谢,向埃米尔H
按照当前的编码方式,它将允许您访问用
self.button
创建的最后一个按钮。你可以把它改成一本字典,然后把它们都存储在那里:然后您可以使用
self.buttons['1.1']
来获取所需的按钮,等等您可以使用列表来存储所有按钮:
问题出在别处
我建议不要使用lambda,而是创建一个类,这个类可以在使用这些按钮的坐标调用button时进行初始化
内在的工作将在课堂本身,它将知道它的坐标。你应该按照我之前的建议创建按钮数组
相关问题 更多 >
编程相关推荐