我是编码的新手,如果这个问题有点基础,请道歉。无论如何,这个在python中制作的GUI应该收集几个用户条目,并将它们传递给GUI中的文本框。但是现在,代码末尾的for循环只将最后一个条目放入文本框中。为什么呢?
$ mc --json ls https://s3.amazonaws.com/miniocloud | jq 'if .type == "folder" then .name else empty end'
"G/"
"Go/"
"asdfasdfadsf/"
"bin/"
"ema/"
"emacs/"
"new/"
"te1231231231231231231231/"
"test/"
答案 0 :(得分:2)
问题在于:
for x in self.entry_list:
entry = x.get()
if entry:
self.checktext.delete(0.0, END)
self.checktext.insert(END, entry + "\n")
每次都要删除小部件中的所有内容,然后再将下一个字符串放入其中。要解决此问题,请不要每次都删除所有内容。如果要在重新填充之前清除窗口小部件,请将删除移出循环:
self.checktext.delete(0.0, END)
for x in self.entry_list:
entry = x.get()
if entry:
self.checktext.insert(END, entry + "\n")
答案 1 :(得分:0)
好的,我明白了,男孩,我感到愚蠢。所以这是我之前的循环:
<li>
每次提交时,for x in self.entry_list:
entry = x.get()
if entry:
self.checktext.delete(0.0, END)
self.checktext.insert(END, entry + "\n")
行都会删除用户输入到文本框中的内容,但是在for循环内部删除了每个条目,然后再添加下一个条目。所以,当然,它只会显示最后一个条目,因为它删除了前几个!所以我把这条线放在for循环之外,如下所示:
self.chectext.delete(0.0, END)
现在工作正常