class AreaPage(QWidget): def __init__(self, parent=None): super(AreaPage, self).__init__(parent) name_label = QLabel("Name:") self.name_lineedit = QLineEdit() self.name_lineedit.setReadOnly(True) devicenum_label = QLabel("Number of devices in this relief device area:") self.devicenum_lineedit = QLineEdit() self.devicenum_lineedit.setReadOnly(True) layout = QGridLayout() layout.setAlignment(Qt.AlignTop) layout.addWidget(name_label, 0, 0) layout.addWidget(self.name_lineedit, 0, 1) layout.addWidget(devicenum_label, 1, 0) layout.addWidget(self.devicenum_lineedit, 1, 1) self.setLayout(layout) self.mapper = QDataWidgetMapper() def setModel(self, proxy_model): self.proxy_model = proxy_model self.mapper.setModel(self.proxy_model.sourceModel()) self.mapper.addMapping(self.name_lineedit, 0) self.mapper.addMapping(self.devicenum_lineedit, 2) def setSelection(self, current): model_index = self.proxy_model.mapToSource(current) parent = model_index.parent() self.mapper.setRootIndex(parent) self.mapper.setCurrentModelIndex(model_index)
class ScenarioPage(QWidget): def __init__(self, parent=None): super(ScenarioPage, self).__init__(parent) reqflow_label = QLabel("Required Flow:") self.reqflow_spinbox = QSpinBox() maxflow_label = QLabel("Maximum Flow:") self.maxflow_spinbox = QSpinBox() type_label = QLabel("Vapor or Liquid?:") self.type_combobox = QComboBox() self.type_combobox.addItems(["Vapor", "Liquid"]) pdropinlet_label = QLabel("% Pressure Drop (Inlet)") self.pdropinlet_spinbox = QSpinBox() pdropoutlet_label = QLabel("% Pressure Drop (Outlet)") self.pdropoutlet_spinbox = QSpinBox() layout = QGridLayout() layout.addWidget(reqflow_label, 0, 0) layout.addWidget(self.reqflow_spinbox, 0, 1) layout.addWidget(maxflow_label, 1, 0) layout.addWidget(self.maxflow_spinbox, 1, 1) layout.addWidget(type_label, 2, 0) layout.addWidget(self.type_combobox, 2, 1) layout.addWidget(pdropinlet_label, 3, 0) layout.addWidget(self.pdropinlet_spinbox, 3, 1) layout.addWidget(pdropoutlet_label, 4, 0) layout.addWidget(self.pdropoutlet_spinbox, 4, 1) self.setLayout(layout) self.mapper = QDataWidgetMapper() def setModel(self, proxy_model): self.proxy_model = proxy_model self.mapper.setModel(self.proxy_model.sourceModel()) self.mapper.addMapping(self.reqflow_spinbox, 2) self.mapper.addMapping(self.maxflow_spinbox, 3) self.mapper.addMapping(self.type_combobox, 4, "currentIndex") self.mapper.addMapping(self.pdropinlet_spinbox, 5) self.mapper.addMapping(self.pdropoutlet_spinbox, 6) def setSelection(self, current): current = self.proxy_model.mapToSource(current) parent = current.parent() self.mapper.setRootIndex(parent) self.mapper.setCurrentModelIndex(current)
class DevicePage(QWidget): def __init__(self, node, parent=None): super(DevicePage, self).__init__(parent) name_label = QLabel("Name:") self.name_lineedit = QLineEdit() setpressure_label = QLabel("Set Pressure:") #self.setpressure_spinbox = QDoubleSpinBox() self.setpressure_spinbox = CustomDoubleSpinBox(node, parent, setpressure_label.text()) modelnum_label = QLabel("Model Number:") #self.modelnum_lineedit = QLineEdit() self.modelnum_lineedit = CustomLineEdit(node, parent, modelnum_label.text()) orient_label = QLabel("Orientation:") self.orient_combobox = QComboBox() self.orient_combobox.addItems(["Horizontal", "Vertical"]) layout = QGridLayout() layout.addWidget(name_label, 0, 0) layout.addWidget(self.name_lineedit, 0, 1) layout.addWidget(setpressure_label, 1, 0) layout.addWidget(self.setpressure_spinbox, 1, 1) layout.addWidget(modelnum_label, 2, 0) layout.addWidget(self.modelnum_lineedit, 2, 1) layout.addWidget(orient_label, 3, 0) layout.addWidget(self.orient_combobox, 3, 1) self.setLayout(layout) self.mapper = QDataWidgetMapper() def setModel(self, proxy_model): self.proxy_model = proxy_model self.mapper.setModel(self.proxy_model.sourceModel()) self.mapper.addMapping(self.name_lineedit, 0) self.mapper.addMapping(self.setpressure_spinbox, 2) self.mapper.addMapping(self.modelnum_lineedit, 3) self.mapper.addMapping(self.orient_combobox, 4, "currentIndex") def setSelection(self, current): current = self.proxy_model.mapToSource(current) parent = current.parent() self.mapper.setRootIndex(parent) self.mapper.setCurrentModelIndex(current)