【问题标题】:PyQt Make Custom PushButton / inheritance from class which has argumentsPyQt从具有参数的类中制作自定义按钮/继承
【发布时间】:2016-07-06 21:52:20
【问题描述】:

我是 PyQt 的新手,我想构建自己的 Check Box,它继承自 QCheckBox。

class Valve(QtGui.QCheckBox):
    def __init__(self, x, y, inputs=[], outputs=[]):
        QtGui.QCheckBox.__init__(self)
        self.sources = inputs
        self.outputs = outputs
        self.move(x, y)

    def is_fillable(self):
        for source in self.sources:
            if source.value == 100: 
                return 1
        return 0

    def stateChanged():
        if isChecked():
            for output in self.outputs:
                if self.is_fillable():
                    output.fill(1)
        else:
            for output in self.outputs:
                if self.is_fillable:
                    output.fill(-1)

class MainWindow(QtGui.QWidget):
    def __init__(self):
        QtGui.QWidget.__init__(self)
        self.initUI()

    def initUI(self):
        self.button1 = Valve('', self, 5, 6)

        self.setGeometry(0, 0, 500, 500)
        self.show()

def main():

    app = QtGui.QApplication(sys.argv)
    ex = MainWindow()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main() 

描述我在这里做了什么:

我想建造水系统。我将使用进度条作为管道,因此在我的代码输入和输出中将是 QProgressBar,我将用它们的值填充它们。

但是我的 Valve(CheckBox) 没有显示在我的窗口中,因为我不知道如何从 QCheckButton 继承,因为它有参数。

感谢解答

【问题讨论】:

    标签: python inheritance pyqt pyqt4


    【解决方案1】:

    您希望将 MainWindow 作为复选框的父级传递:

    class Valve(QtGui.QCheckBox):
    
        def __init__(self, parent, x, y, inputs=[], outputs=[]):
            QtGui.QCheckBox.__init__(self, parent)
    
    class MainWindow(QtGui.QWidget):
    
        def initUI(self):
            self.button1 = Valve(self, 5, 6)
    

    【讨论】:

      猜你喜欢
      • 2014-11-09
      • 1970-01-01
      • 1970-01-01
      • 2016-08-27
      • 2011-01-09
      • 1970-01-01
      • 2011-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多