2017-03-08 3 views
0

나는 변경 번호 파일 (I은 QGIS 플러그인을 호출 할 때마다)이 있습니다으로 반복 확인란 PyQt는

0 
8 
7 

를 그리고 9 확인란 (self.t0, self.t1을 가지고 ... 나는 상자를 설정하려는 파일의 내용으로, self.t8)

체크 : 내가 얻을

class mask_n_functions(QDialog, Ui_Dialog): 

    def __init__(self, parent): 
     QDialog.__init__(self, parent) 
     self.setupUi(self) 

     self.set_prefs.clicked.connect(self.preferences) 
     self.cancel.clicked.connect(self.closePlugin) 

     with open(r'C:\\path\\checklist.txt', "r") as f: 
      for line in f: 
       checkboxname = "t" + str(line) 
       self.checkboxname.setChecked(True) 

:

나는이 시도 오류 :

확인란을 반복 할 수 있습니까?

그룹 상자를 사용해야합니까?

답변

1

getattr 기능을 사용해야합니다. 사용중인 스타일은 PHP에서 작동하며 Python에서는 작동하지 않습니다.

그래서 질문에 언급 된 마지막 줄 대신 다음과 같이 사용하십시오.

checkbox = getattr(self, checkboxname) 
checkbox.setChecked(True) 
+0

고맙습니다. 'checkboxstring = "t"+ str (line)'및'checkboxname = checkboxstring.strip()'을 사용하여 checkboxname 문자열에서 모든 공백을 제거 할 때만 작동합니다. 문자열에서 파일을 읽을 때 문자열에 공백이있었습니다 (열린 텍스트 파일에는 표시되지 않음). – Stefan

+0

예, 속성 이름이 정확해야하며 공백이 문제가됩니다. –