2016-07-24 3 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], ...) 
... 
관련 문제