2011-09-19 62 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 –