PySide,PysideUIC和多重继承

 胆小的女屌丝 发布于 2023-02-11 20:50

我有一个继承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_())

当我尝试扩展MainDialogWorker,super不调用Worker's __init__和print dlg.data失败,因为"AttributeError:'MainDialog'对象没有属性'data'"

我唯一的解决方法似乎是忽略super并__init__手动调用每个.

QtGui.QDialog.__init__(self)
Worker.__init__(self)

这是我唯一的解决方案吗?

这适用于Python 2.7.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有