2011-09-19 33 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設計器)生成的python代碼的格式

第二個文件的最後兩行是麻煩。 我收到錯誤消息「Ui_MainWindow()沒有屬性'X'」。

我不知道該去哪裏,除了嘗試'eval'。 我試過的東西,如...

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

這促使錯誤 「Ui_MainWindow()有沒有屬性 '的eval'

X = eval("VariableName") 

」沒有定義VARIABLENAME「

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

」 Ui_MainWindow()沒有屬性'X'「


我可以使用任何和所有這方面的幫助!
我覺得eval讓我更近了一步,但是使用這些嵌套類會抑制它!

HALP'?!


詳情:
- 的Python 2.7.1
- Windows 7中(32位)
- IDLE 1.8
- PyQt4的
- Qt設計

回答

6

嘗試

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

有關的更多信息,請參閱。

+0

我愛你! 完美工作,將盡快接受。 謝謝x 100000 –

相關問題