2011-09-19 4 views
1

변수 이름의 일부 문자열이 있는데, 처음에는 문자열 (파일 IO로 인해)이어야합니다.
이들 변수는 두 클래스에 포함 된 PyQt4 위젯의 변수 이름입니다.문자열을 변수 이름으로 해석하기 (클래스 포함) - Python

이 문자열을 실제 변수 이름으로 변환하여 함수에서 사용할 수 있어야합니다.
은 (종류의 같은 당신이 숫자의 문자열 '내부'방법) 다음

을 (클래스 광기를 표시) 코드

FIRST FILE

class Ui_MainWindow(object): 
    def setupUi(self, MainWindow): 
     self.VariableName = QWidget(whatever) 

두 번째 파일

입니다
from FIRST_FILE import Ui_MainWindow 

class Start(QtGui.QMainWindow): 
    def __init__(self, parent = None): 
     QtGui.QWidget.__init__(self, parent) 
     self.ui = Ui_MainWindow() 
     self.ui.setupUi(self) 
    def ResetDropBoxes(self): 
     X = "VariableName" 
     self.ui.X.Function() 

일부는 이것을 Pyuic4 (Qt 디자이너)가 생성 한 파이썬 코드 형식으로 인식 할 수 있습니다.

두 번째 파일의 마지막 두 줄은 문제입니다. "Ui_MainWindow()에 'X'속성이 없습니다라는 오류 메시지가 나타납니다.

'eval'을 시도한 경우를 제외하고 어디로 갈지는 몰랐습니다. 내가 같은 일을 시도 은 ...

X = self.ui.eval("VariableName") 

이 오류 "Ui_MainWindow()

X = eval("VariableName") 

어떤 속성을 '평가'가 없다"변수 이름은 "

X = "VariableName" 
eval(self.ui.X.Function()) 

"정의되지 않은 자극 Ui_MainWindow()에 'X'속성이 없습니다. "


나는이 문제에 대해 모든 도움을 사용할 수 있습니다!
나는 eval이 나에게 좀더 가까이 다 가설 것이라고 생각하지만,이 중첩 된 클래스들을 사용하면 그것을 막을 수있다!

할아버지 '?!


세부 사항 :
- 파이썬 2.7.1
- 윈도우 7 (32 비트)
- IDLE 1.8
- PyQt4
- Qt는 디자이너

답변

6

시도

getattr(self.ui, VariableName).Function() 

에 대한 자세한 내용은 here을 참조하십시오..

+0

I LOVE YOU! 완벽하게 작동했으며 최대한 빨리 적용합니다. 감사 x 100000 –

관련 문제