Python Tkinter GUI只工作一次
大家好,Pythonian的朋友们,我对Tkinter比较陌生,我目前正在开发一个GUI,它允许用户从给定的列表中选择元素,然后按任意给定的顺序排列,并添加任意可选的前缀/后缀。程序在第一次调用时运行良好,但当我尝试第二次调用时,它将无法正确更新 对于创建的类,我的代码如下(我在底部放置了一个可执行部分,以便让您了解我的问题,列表0是任何给定的列表,列表1是我们从第一次调用中获得的,列表2应该是从第二次调用中获得的,如果没有显示此问题): 谢谢大家! 可能不是唯一的问题,因为正如评论中所提到的,您的示例代码对于该站点的约定太长(例如,请参阅对重要代码段的反馈) 您的代码在python新手中表现出一个常见错误,即使用空列表作为关键字参数的默认值(至少在Python Tkinter GUI只工作一次,python,user-interface,tkinter,Python,User Interface,Tkinter,大家好,Pythonian的朋友们,我对Tkinter比较陌生,我目前正在开发一个GUI,它允许用户从给定的列表中选择元素,然后按任意给定的顺序排列,并添加任意可选的前缀/后缀。程序在第一次调用时运行良好,但当我尝试第二次调用时,它将无法正确更新 对于创建的类,我的代码如下(我在底部放置了一个可执行部分,以便让您了解我的问题,列表0是任何给定的列表,列表1是我们从第一次调用中获得的,列表2应该是从第二次调用中获得的,如果没有显示此问题): 谢谢大家! 可能不是唯一的问题,因为正如评论中所提到的,
getchosenlist
和SelecParamOrdered.\uuuu_uu
中)。此空列表在方法的每个调用中共享,因此,它会随时间累积结果。您可以阅读有关的详细说明
您可能想要实现的目标可以与模式一起使用:
def foo(arg = None):
if arg is None:
arg = []
(...)
请读这个:或者读一读
def getchosenlist(listInit=[],listFinal=[], TITLE="Parameter selection", TEXTE="Here, specific instructions"):
root = TK.Tk()
app = SelecParamOrdered(root,listInit,listFinal,TITLE,TEXTE)
root.mainloop()
return app.sendAll()
if __name__ == '__main__':
liste_param = []
for i in range(10):
liste_param.append('Parameter'+str(i+1))
print ' List 0:\n',liste_param
list1 = getchosenlist(liste_param)
print ' List 1st:\n',list1
list2 = getchosenlist(liste_param)
print ' List 2nd:\n',list2
def foo(arg = None):
if arg is None:
arg = []
(...)