def __init__(self, parent, target, feat): super().__init__(parent) layout = QtGui.QHBoxLayout(self) self._label = QtGui.QLabel() self._label.setText(feat.name) self._label.setFixedWidth(120) self._label.setToolTip(_rst_to_html(feat.__doc__)) layout.addWidget(self._label) if isinstance(feat.feat, DictFeat): self._widget = DictFeatWidget(parent, target, feat) else: self._widget = WidgetMixin.from_feat(feat) self._widget.bind_feat(feat) self._widget.lantz_target = target layout.addWidget(self._widget) self._get = QtGui.QPushButton() self._get.setText('get') self._get.setEnabled(self._widget.readable) self._get.setFixedWidth(60) layout.addWidget(self._get) self._set = QtGui.QPushButton() self._set.setText('set') self._set.setEnabled(self._widget.writable) self._set.setFixedWidth(60) layout.addWidget(self._set) self._get.clicked.connect(self.on_get_clicked) self._set.clicked.connect(self.on_set_clicked) self._widget._update_on_change = self._widget.writable self.widgets = (self._label, self._widget, self._get, self._set)
def createGUI(self): # Demonstrate the supported widgets. # Uncomment to try others. self.widget = self._createGUITable() #self.widget = self._createGUILine() #self.widget = self._createGUIText() button = QtGui.QPushButton() button.setText('Initialize') button.setEnabled(True) button.clicked.connect(self.initialize) layout = QtGui.QVBoxLayout() layout.addWidget(button) layout.addWidget(self.widget) self.setLayout(layout) self.setWindowTitle("Driver initialization")
def __init__(self, parent, target): super().__init__(parent) self._lantz_target = target layout = QtGui.QVBoxLayout(self) label = QtGui.QLabel() label.setText(str(target)) layout.addWidget(label) recall = QtGui.QPushButton() recall.setText('Refresh') recall.clicked.connect(lambda x: target.refresh()) update = QtGui.QPushButton() update.setText('Update') update.clicked.connect( lambda x: target.update(self.widgets_values_as_dict())) auto = QtGui.QCheckBox() auto.setText('Update on change') auto.setChecked(True) auto.stateChanged.connect(self.update_on_change) hlayout = QtGui.QHBoxLayout() hlayout.addWidget(recall) hlayout.addWidget(update) hlayout.addWidget(auto) layout.addLayout(hlayout) self.writable_widgets = [] self.widgets = [] # Feat for feat_name, feat in sorted(target.feats.items()): try: feat_widget = LabeledFeatWidget(self, target, feat) self.widgets.append(feat_widget) if feat_widget.writable: self.writable_widgets.append(feat_widget) layout.addWidget(feat_widget) except Exception as ex: logger.debug('Could not create control for {}: {}'.format( feat_name, ex)) if __PRINT_TRACEBACK__: import traceback traceback.print_exc() # Actions line = QtGui.QFrame(self) #self.line.setGeometry(QtCore.QRect(110, 80, 351, 31)) line.setFrameShape(QtGui.QFrame.HLine) line.setFrameShadow(QtGui.QFrame.Sunken) layout.addWidget(line) actions_label = QtGui.QLabel(self) actions_label.setText('Actions:') actions_label.setFixedWidth(120) self.actions_combo = QtGui.QComboBox(self) self.actions_combo.addItems(list(target.actions.keys())) actions_button = QtGui.QPushButton(self) actions_button.setFixedWidth(60) actions_button.setText('Run') actions_button.clicked.connect(self.on_run_clicked) alayout = QtGui.QHBoxLayout() alayout.addWidget(actions_label) alayout.addWidget(self.actions_combo) alayout.addWidget(actions_button) layout.addLayout(alayout)