如何避免双重因素

时间:2018-05-19 22:34:57

标签: python inheritance pyqt

我正在尝试开发一个qt应用程序,我已经决定创建一个名为window的抽象类,每个窗口都有来自QWidget的inherts,diaoluge将从她的内部开始,并将包含该窗口应具有的基本属性。现在,来自窗口的inherts类中的一个类也来自QMainWindow。我的问题是QMainWindow和来自QWidget的窗口inherts。这让我觉得我的解决方式不是最优的,并且有一种适当的方式来做我试图做的genraliztion,任何建议都会受到欢迎。

以下是双重依赖的代码(删除不重要的部分):

class Window(QtGui.QWidget , ):
    _metaclass__ = ABCMeta
    def __init__(self, win_name):
        super(Window, self).__init__()
        self.name = win_name
        self.initUI()

    def initUI(self, ):
        self.setWindowTitle(self.name)

        self.show()


class Main_Window(QtGui.QMainWindow,  Window):

    def __init__(self, win_name):
        super(Main_Window, self).__init__(win_name)
        self.initUI()

    def initUI(self, ):
        self.statusBar().showMessage('chk')
        self.setGeometry(300, 300, 250, 150)
        super(Main_Window, self).initUI()

1 个答案:

答案 0 :(得分:0)

使用继承的另一个选项是使用on Scastie,这是一个小例子:

 $names = @{"name1@name.com","name2@name.com"}

正如你所看到的,我已经对你发布的代码进行了重构,改变了GuiBuilder的Window,Pep8风格,......当然,上面的例子并没有太多的意义,而且你也是如此。如果有充分的理由,请使用这种方法。 composition