2016-07-24 54 views
0

我正試圖激活一組默認值,這是我擁有的一組複選框。現在不是將每個默認值單獨設置爲1。我想知道是否有一種方法可以將所有變量分配給字典,以便我可以從字典中循環所有變量,並將它們設置爲1而不是單獨編寫它們。這樣我可以通過應用程序將組變量操作爲一組。Python和Tkinter將字典更改爲變量

當前代碼:

if self.mastervar.get() == 1: 

      self.var1.set(1) 
      self.var2.set(1) 
      self.var3.set(1) 
      self.var4.set(1) 
      self.var5.set(1) 
      self.var6.set(1) 
      self.var7.set(1) 

失敗代碼:

values {'self.var1', 
      'self.var2', 
      'self.var3',    
      'self.var4', 
      'self.var5', 
      self.var6', 
      self.var7'} 
for x in values: 
     locals()[values[x]] 
     values[x].set(1) 
+0

你可以用列表或任何你想做的。但是在這些情況下,你的程序都不會獲得更多的性能。 –

回答

0

存儲實際的變量,而不是變量的名稱:

values = [self.var1, self.var2, self.var3, ...] 
for var in values: 
    var.set(1) 

當然,一旦你這樣做沒有理由將每個變量作爲單獨的屬性:

# in initialization code: 
values = [] 
for i in range(10): 
    values.append(StringVar()) 
... 
CheckButton(..., variable=values[0], ...) 
CheckButton(..., variable=values[1], ...) 
...