def __init__(self, fmt, params): super(ParamDialog, self).__init__() self.label = QLabel("Please choose a valid parameter set:") self.selector = QComboBox() self.editor = ParamTab() self.selector.currentIndexChanged.connect(self.setParam) # setup parameter list: self.parameters = [newParam(fmt, i) for i in availParam(fmt)] self.parameters.extend([i for i in params if i["type"] == fmt]) self.selector.addItems([i['name'] for i in self.parameters]) # layout ok = QPushButton("OK") ok.clicked.connect(self.accept) ok.setDefault(True) cancel = QPushButton("Cancel") cancel.clicked.connect(self.reject) vbox = QVBoxLayout() vbox.addWidget(self.label) vbox.addWidget(self.selector) vbox.addWidget(self.editor) hbox = QHBoxLayout() hbox.addWidget(cancel) hbox.addWidget(ok) vbox.addLayout(hbox) self.setLayout(vbox)
def newParam(self): if self.sender().parent() != self: prog = _guiOutNames[str(self.sender().parent().title())] var = str(self.sender().text()) else: prog = _guiOutNames[str(self.sender().text())] var = "default" param = newParam(prog, var) self.parameters.append(param) self.plist.addItem(param["name"]) self.plist.setCurrentRow(self.plist.count() - 1)