2013-10-28 51 views
0

我目前正在使用Tkinter進行一些代碼工作,並且我遇到了一個無法用任何Google搜索解決的問題。對列表進行迭代以製作小部件

本質上,我有一個函數,它讀取文本文件中的行並將其分發到列表中。我的問題是我不知道會有多少標籤會出現,所以我設置了一個計數器變量和一個for循環。

我的問題是如何定義一個Tkinter的部件,像這樣:

self.label(counter value here) = Label(self, text = line) 

回答

0

這是通常做這樣的事情與列表理解

self.labels = [Label(self, text=val) for val in my_list_of_texts] 

現在可以通過索引self.labels[0]直接訪問它們,self.labels[1],...

但是通常你會遍歷整個列表

for label in self.labels: 
    label.some_method() 
    do_something(label) 
    ... 
0

你的意思是這樣的?

for val in my_list_of_texts: 
    self.labels.append(Label(self, text = val)) 

我不太得到什麼問題..

+0

我已經解決了我的問題,謝謝你,但我是問如何創建依賴於一個變量的窗口小部件,就像如果計數器變量分別是3,這將是 'self.label3 = LABEL(自我,文本=行)', 我最終用'exec'命令解決了這個問題。 –

+0

將它放入容器不是更好嗎?你能告訴我們你的答案嗎? (例如通過回答你自己的問題;)) – jaor

+0

我寧願不回答,因爲我不是100%確定這是最好的解決方案。 –