2016-07-06 7 views
1

私はPyQtで新しくQCheckBoxから継承した独自のチェックボックスを作成したいと思います。私がここで何をしたかPyQt引数を持つクラスからカスタムPushButton /継承を作成する

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になり、それらの値を入力します。

しかし、私のバルブ(CheckBox)は私のウィンドウに表示されないので、引数があるのでQCheckButtonからどのように継承するのか分かりませんでした。あなたは、チェックボックスの親としてMainWindowを渡したいと思います答え

答えて

1

ため

ありがとう:

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) 
関連する問題