我有一个继承pyside-uic生成的python类的对话框类,但我的问题是它无法扩展我添加另一个基类.
import sys from PySide import QtGui from mi_ui import Ui_Dialog class Worker(object): def __init__(self): super(Worker, self).__init__() self.data = 1 class MainDialog(QtGui.QDialog, Ui_Dialog, Worker): def __init__(self): super(MainDialog, self).__init__() self.setupUi(self) if __name__ == '__main__': app = QtGui.QApplication(sys.argv) dlg = MainDialog() print dlg.data dlg.show() sys.exit(app.exec_())
当我尝试扩展MainDialog
时Worker
,super不调用Worker
's __init__
和print dlg.data失败,因为"AttributeError:'MainDialog'对象没有属性'data'"
我唯一的解决方法似乎是忽略super并__init__
手动调用每个.
QtGui.QDialog.__init__(self) Worker.__init__(self)
这是我唯一的解决方案吗?
这适用于Python 2.7.