我是PyQt的新手我想建立自己的QCheckBox继承的Check Box。
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继承,因为它有参数。
感谢您的回答
答案 0 :(得分:2)
您希望将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)