Exemple #1
0
    def __init__(self, parent: 'LayerAlignmentDialog',
                 model: KeypointAlignmentModel) -> None:
        super(KeypointAlignmentWidget, self).__init__()
        self.model = model
        self._parent = parent

        layout = QtWidgets.QFormLayout()
        self.setLayout(layout)

        keypoint_gb = QtWidgets.QGroupBox("Keypoint")
        layout.addWidget(keypoint_gb)

        edit_layout = QtWidgets.QFormLayout()
        keypoint_gb.setLayout(edit_layout)

        self.kpts_sel = QtWidgets.QComboBox()
        self.kpts_sel.setModel(self.model.combo_adapter)
        self.kpts_sel.currentIndexChanged.connect(self.kptChanged)
        edit_layout.addRow("Keypoint:", self.kpts_sel)

        self.wx = UnitLineEdit(UNIT_GROUP_MM)
        self.wy = UnitLineEdit(UNIT_GROUP_MM)
        edit_layout.addRow("World X", self.wx)
        edit_layout.addRow("World Y", self.wy)
        self.wx.edited.connect(self.update_world)
        self.wy.edited.connect(self.update_world)

        self.px = UnitLineEdit(UNIT_GROUP_PX)
        self.py = UnitLineEdit(UNIT_GROUP_PX)
        edit_layout.addRow("Image X", self.px)
        edit_layout.addRow("Image Y", self.py)
        self.px.edited.connect(self.update_layer)
        self.py.edited.connect(self.update_layer)

        self.use_for_alignment = QtWidgets.QCheckBox()
        edit_layout.addRow("Use", self.use_for_alignment)
        self.use_for_alignment.clicked.connect(self.update_used)

        self.add_btn = QtWidgets.QPushButton("Add New")
        self.add_btn.clicked.connect(self.addKeypoint)
        self.del_btn = QtWidgets.QPushButton("Remove Current")
        self.del_btn.clicked.connect(self.delKeypoint)
        bhl = QtWidgets.QHBoxLayout()
        bhl.addWidget(self.add_btn)
        bhl.addWidget(self.del_btn)
        edit_layout.addRow(bhl)

        self.constraint_status_lbl = QtWidgets.QLabel("")
        self.constraint_status_lbl.setWordWrap(True)
        layout.addRow(self.constraint_status_lbl)

        self.model.changed.connect(self.modelChanged)
        self.modelChanged()
Exemple #2
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        vbox = QtWidgets.QVBoxLayout()
        vbox.setContentsMargins(5, 5, 5, 5)
        vbox.setMargin(5)
        self.setLayout(vbox)

        flay = QtWidgets.QFormLayout()
        vbox.addLayout(flay)

        self.scriptFileWidget = FileLayout('')
        flay.addRow('Script', self.scriptFileWidget)

        hbox = QtWidgets.QHBoxLayout()
        self.funcName = QtWidgets.QComboBox()
        self.funcName.setEditable(False)
        self.funcName.currentIndexChanged.connect(self.funcNameIndexChanged)
        hbox.addWidget(self.funcName)
        self.locateBtn = QtWidgets.QPushButton('Locate')
        self.locateBtn.clicked.connect(self.locate)
        hbox.addWidget(self.locateBtn)

        flay.addRow('Function', hbox)

        self.callerEdit = QtWidgets.QLineEdit('')
        flay.addRow('Caller', self.callerEdit)

        self.settingsFileName = FileLayout('',
                                           loadCall=self.loadValues,
                                           saveCall=self.saveValues)
        flay.addRow('Settings', self.settingsFileName)

        self.runScrollForm = RunScrollForm()
        vbox.addWidget(self.runScrollForm)

        flay = QtWidgets.QFormLayout()
        vbox.addLayout(flay)

        self.returnRef = QtWidgets.QLineEdit()
        flay.addRow('Return Reference', self.returnRef)

        hbox = QtWidgets.QHBoxLayout()
        vbox.addLayout(hbox)

        self.runBtn = QtWidgets.QPushButton('Run')
        self.runBtn.setIcon(
            QtGui.QIcon(str(respath / 'icons' / 'px16' / 'script_go.png')))
        self.runBtn.clicked.connect(self.run)
        hbox.addWidget(self.runBtn)

        self.widgetConfigs = dict()
Exemple #3
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        vbox = QtWidgets.QVBoxLayout()
        vbox.setContentsMargins(5, 5, 5, 5)
        vbox.setMargin(5)
        self.setLayout(vbox)

        flay = QtWidgets.QFormLayout()
        vbox.addLayout(flay)

        self.offset = QtWidgets.QLineEdit()
        flay.addRow('Offset', self.offset)

        self.dtype = QtWidgets.QLineEdit()
        flay.addRow('Data type', self.dtype)

        self.byteorder = QtWidgets.QComboBox()
        self.byteorder.addItem('litle endian')
        self.byteorder.addItem('big endian')
        flay.addRow('Byte Order', self.byteorder)

        self.guess = QtWidgets.QPushButton('Resolutions')
        self.guess.clicked.connect(self.guessSize)
        flay.addRow('Guess size', self.guess)

        self.width = QtWidgets.QLineEdit()
        flay.addRow('Width', self.width)

        self.height = QtWidgets.QLineEdit()
        flay.addRow('Height', self.height)
Exemple #4
0
    def __init__(self, device: microscope.abc.Stage, *args, **kwargs) -> None:
        super().__init__(*args, **kwargs)
        self._device = device

        layout = QtWidgets.QFormLayout(self)
        for name, axis in self._device.axes.items():
            label = "%s (%s : %s)" % (
                name,
                axis.limits.lower,
                axis.limits.upper,
            )

            position_box = QtWidgets.QDoubleSpinBox(parent=self)
            position_box.setMinimum(axis.limits.lower)
            position_box.setMaximum(axis.limits.upper)
            position_box.setValue(axis.position)
            position_box.setSingleStep(1.0)

            def setPositionSlot(position: float, name: str = name):
                return self.setPosition(name, position)

            position_box.valueChanged.connect(setPositionSlot)

            layout.addRow(label, position_box)
        self.setLayout(layout)
    def New_UI(self, include = None, exclude = []):
        """create a default Qt Widget that contains 
        widgets for all settings in the LQCollection
        """

        ui_widget =  QtWidgets.QWidget()
        formLayout = QtWidgets.QFormLayout()
        ui_widget.setLayout(formLayout)
        
        if include is None:
            lqnames = self.as_dict().keys()
        else:
            lqnames = include
        
        for lqname in lqnames:
            if lqname in exclude:
                continue
            lq = self.get_lq(lqname)
            #: :type lq: LoggedQuantity
            widget = lq.new_default_widget()
            # Add to formlayout
            formLayout.addRow(lqname, widget)
            #lq_tree_item = QtWidgets.QTreeWidgetItem(self.tree_item, [lqname, ""])
            #self.tree_item.addChild(lq_tree_item)
            #lq.hardware_tree_widget = widget
            #tree.setItemWidget(lq_tree_item, 1, lq.hardware_tree_widget)
            #self.control_widgets[lqname] = widget  
        return ui_widget
Exemple #6
0
def test_run_3():
    with qt_multiprocessing.AppEventLoop() as loop:
        app = QtWidgets.QApplication([])

        QtManager.register('Label', QtWidgets.QLabel)
        mngr = QtManager()
        mngr.start()

        # Create the proxy label
        lbl = mngr.Label("Hello")
        lbl.show()

        widg = QtWidgets.QDialog()
        lay = QtWidgets.QFormLayout()
        widg.setLayout(lay)

        # Form
        inp = QtWidgets.QLineEdit()
        btn = QtWidgets.QPushButton('Set Text')
        lay.addRow(inp, btn)

        def set_text():
            value = inp.text()
            lbl.setText(value)
            # loop.add_var_event('label', 'setText', value)

        btn.clicked.connect(set_text)

        widg.show()

        app.exec_()
    def __init__(self, main_window, settings):
        """
		Constructor

		Arguments:
		experiment -- the experiment
		settings -- the settings dictionary

		Keywords arguments:
		parent -- parent QWidget (default=None)
		"""

        super(settings_widget, self).__init__(main_window)
        self.settings = settings
        self.layout = QtWidgets.QFormLayout(self)
        self.layout.setFieldGrowthPolicy(
            QtWidgets.QFormLayout.FieldsStayAtSizeHint)
        self.setLayout(self.layout)
        for var, desc in settings.items():
            if var in self.experiment.var:
                val = self.experiment.var.get(var)
            else:
                val = desc[u"default"]
            label = QtWidgets.QLabel()
            label.setText(
                u"%(name)s<br /><small><i>%(description)s</i></small>" % desc)
            label.setTextFormat(QtCore.Qt.RichText)
            edit = settings_edit(self.main_window, var, val)
            self.layout.addRow(label, edit)
Exemple #8
0
    def _build_form(self):
        fitter = self.fitter

        l = QtWidgets.QFormLayout()
        options = fitter.options
        self.widgets = {}
        self.forms = {}

        for k in sorted(options):
            item = build_form_item(fitter, k)
            l.addRow(item.label, item.widget)
            self.widgets[k] = item.widget
            self.forms[k] = item  # need to prevent garbage collection

        constraints = fitter.constraints
        if constraints:
            self.constraints = ConstraintsWidget(constraints)
            l.addRow(self.constraints)
        else:
            self.constraints = None

        self.okcancel = QtWidgets.QDialogButtonBox(
            QtWidgets.QDialogButtonBox.Ok | QtWidgets.QDialogButtonBox.Cancel)
        l.addRow(self.okcancel)
        self.setLayout(l)
Exemple #9
0
    def _setup_widgets(self):
        self.layout = QtWidgets.QFormLayout()

        self.size_widget = QtWidgets.QSpinBox()
        self.size_widget.setMinimum(1)
        self.size_widget.setMaximum(40)
        self.size_widget.setValue(self.layer.style.markersize)

        self.label_widget = QtWidgets.QLineEdit()
        self.label_widget.setText(self.layer.label)
        self.label_widget.selectAll()

        self.color_widget = ColorWidget()
        self.color_widget.setStyleSheet('ColorWidget {border: 1px solid;}')
        color = self.layer.style.color
        color = mpl_to_qt4_color(color, alpha=self.layer.style.alpha)
        self.set_color(color)

        self.okcancel = QtWidgets.QDialogButtonBox(
            QtWidgets.QDialogButtonBox.Ok | QtWidgets.QDialogButtonBox.Cancel)

        if self._edit_label:
            self.layout.addRow("Label", self.label_widget)
        self.layout.addRow("Color", self.color_widget)
        self.layout.addRow("Size", self.size_widget)

        self.layout.addWidget(self.okcancel)

        self.setLayout(self.layout)
        self.layout.setContentsMargins(6, 6, 6, 6)
Exemple #10
0
    def create_group(self, name, options_list):
        """
        Creates a new option group with the given `name` and adds the options
        defined in `options_list` to it.

        This function acts as a base function called by `create_group_`
        functions.

        Parameters
        ----------
        name : str
            The name of this option group.
        options_list : list of str
            A list containing the names of all options that need to be added to
            this group.

        Returns
        -------
        group : :obj:`~PyQt5.QtWidgets.QGroupBox` object
            The created option group.

        """

        # Create a group
        group = QW.QGroupBox(name)
        layout = QW.QFormLayout()
        group.setLayout(layout)

        # Include all options named in options_list
        for option in options_list:
            layout.addRow(*getattr(self, 'create_option_%s' % (option))())

        # Return group
        return(group)
Exemple #11
0
    def __init__(self, parent=None):
        super().__init__(parent)

        # Widgets
        self.cb_length = QtWidgets.QComboBox()
        self.cb_length.addItem("m", self._get_units_string("m"))
        self.cb_length.addItem("cm", self._get_units_string("cm"))
        self.cb_length.addItem("\u03bcm", self._get_units_string("um"))
        self.cb_length.addItem("nm", self._get_units_string("nm"))
        self.cb_length.addItem("\u212b", self._get_units_string("angstrom"))

        self.cb_density = QtWidgets.QComboBox()
        self.cb_density.addItem("g/cm\u00b3", self._get_units_string("g/cm^3"))
        self.cb_density.addItem("kg/m\u00b3", self._get_units_string("kg/m^3"))

        self.cb_energy = QtWidgets.QComboBox()
        self.cb_energy.addItem("eV", self._get_units_string("eV"))
        self.cb_energy.addItem("keV", self._get_units_string("keV"))
        #        self.cb_energy.addItem('J', self._get_units_string('J'))

        self.cb_angle = QtWidgets.QComboBox()
        self.cb_angle.addItem("\u00b0", self._get_units_string("deg"))
        self.cb_angle.addItem("rad", self._get_units_string("rad"))

        # Layouts
        layout = QtWidgets.QFormLayout()

        layout.addRow("Length/distance", self.cb_length)
        layout.addRow("Density", self.cb_density)
        layout.addRow("Energy", self.cb_energy)
        layout.addRow("Angle", self.cb_angle)

        self.setLayout(layout)
Exemple #12
0
def run_without_proxy():
    with qt_multiprocessing.MpApplication(initialize_process=create_process_widgets) as app:
        print("Main PID:", os.getpid())

        widg = QtWidgets.QDialog()
        lay = QtWidgets.QFormLayout()
        widg.setLayout(lay)

        # Form
        inp = QtWidgets.QLineEdit()
        btn = QtWidgets.QPushButton('Set Text')
        lay.addRow(inp, btn)

        def set_text():
            text = inp.text()
            app.add_var_event('label', 'setText', text)

            # The label does not exist in this process at all. Can only access by string names
            print('Set Label text', text + '.')

            # `print_pid` will run in a separate process and print the pid.
            app.add_var_event('label', 'print_pid')

        btn.clicked.connect(set_text)

        widg.show()
Exemple #13
0
def run_app():
    with qt_multiprocessing.MpApplication() as app:
        print("Main PID:", os.getpid())

        # Proxy
        lbl = MyPIDLabelProxy("Hello")

        widg = QtWidgets.QDialog()
        lay = QtWidgets.QFormLayout()
        widg.setLayout(lay)

        # Form
        inp = QtWidgets.QLineEdit()
        btn = QtWidgets.QPushButton('Set Text')
        lay.addRow(inp, btn)

        def set_text():
            text = inp.text()
            lbl.setText(inp.text())

            # Try to somewhat prove that the label is in a different process.
            # `print_pid` Not exposed (will call in other process. Result will be None)
            print('Set Label text', text + '. Label text in this process', lbl.print_pid())

            # `print_pid` will run in a separate process and print the pid.

        btn.clicked.connect(set_text)

        widg.show()
Exemple #14
0
    def _create_entry(self, segment):
        segment_label = QtWidgets.QLabel(str(segment))
        und_widget = UndulatorWidget()
        und_widget.prefix = self.prefix
        und_widget.segment = segment

        curr_pv = UndulatorWidget.CHANNELS['curr_k'].format(prefix=self.prefix,
                                                            segment=segment)
        curr_label = PyDMLabel(init_channel=curr_pv)
        curr_label.setMinimumWidth(100)

        target_pv = UndulatorWidget.CHANNELS['target_k'].format(
            prefix=self.prefix, segment=segment)
        target_label = PyDMLabel(init_channel=target_pv)
        target_label.setMinimumWidth(100)

        k_values_layout = QtWidgets.QFormLayout()
        k_values_layout.setFormAlignment(QtCore.Qt.AlignCenter)
        k_values_layout.addRow("Current K:", curr_label)
        k_values_layout.addRow("Target K:", target_label)

        layout = QtWidgets.QHBoxLayout()
        layout.addWidget(segment_label)
        layout.addWidget(und_widget)
        layout.addLayout(k_values_layout)
        layout.addStretch(1)
        layout.setStretch(0, 0)
        layout.setStretch(1, 1)
        layout.setStretch(2, 0)

        return layout
    def __init__(self, parent=None):
        super(getPackageDialog, self).__init__(parent)

        layout = QtWidgets.QFormLayout()
        self.btn = QtWidgets.QPushButton("Choose from list")
        self.btn.clicked.connect(self.getItem)
        self.btn1 = QtWidgets.QPushButton("Type name:")
        #self.btn1.clicked.connect(self.gettext)

        self.le = QtWidgets.QLineEdit()
        layout.addRow(self.btn)
        layout.addRow(self.btn1, self.le)

        #self.le1 = QtWidgets.QLineEdit()
        #layout.addRow(self.btn1,self.le1)
        self.btn2 = QtWidgets.QPushButton("Enter minimun version:")
        #self.btn2.clicked.connect(self.getmin)

        self.le2 = QtWidgets.QLineEdit()
        layout.addRow(self.btn2, self.le2)

        self.btn3 = QtWidgets.QPushButton("Enter maximum version:")
        #self.btn3.clicked.connect(self.getmax)

        self.le3 = QtWidgets.QLineEdit()
        layout.addRow(self.btn3, self.le3)

        self.btn4 = QtWidgets.QPushButton("Go")
        self.btn4.clicked.connect(self.go)
        layout.addRow(self.btn4)

        self.setWindowTitle("Single Package Install Dialog")
        self.setLayout(layout)
Exemple #16
0
    def new_control_widgets(self):

        self.controls_groupBox = QtWidgets.QGroupBox(self.name)
        self.controls_formLayout = QtWidgets.QFormLayout()
        self.controls_groupBox.setLayout(self.controls_formLayout)

        self.control_widgets = OrderedDict()
        for lqname, lq in self.settings.as_dict().items():
            #: :type lq: LoggedQuantity
            if lq.choices is not None:
                widget = QtWidgets.QComboBox()
            elif lq.dtype in [int, float]:
                if lq.si:
                    widget = pg.SpinBox()
                else:
                    widget = QtWidgets.QDoubleSpinBox()
            elif lq.dtype in [bool]:
                widget = QtWidgets.QCheckBox()
            elif lq.dtype in [str]:
                widget = QtWidgets.QLineEdit()
            lq.connect_bidir_to_widget(widget)

            # Add to formlayout
            self.controls_formLayout.addRow(lqname, widget)
            self.control_widgets[lqname] = widget

        self.op_buttons = OrderedDict()
        for op_name, op_func in self.operations.items():
            op_button = QtWidgets.QPushButton(op_name)
            op_button.clicked.connect(op_func)
            self.controls_formLayout.addRow(op_name, op_button)

        return self.controls_groupBox
Exemple #17
0
    def _setup_widget(self):
        w = QtWidgets.QWidget()
        l = QtWidgets.QFormLayout()
        w.setLayout(l)

        combo = QtWidgets.QComboBox()
        combo.addItem("Mean", userData=Aggregate.mean)
        combo.addItem("Median", userData=Aggregate.median)
        combo.addItem("Max", userData=Aggregate.max)
        combo.addItem("Centroid", userData=Aggregate.mom1)
        combo.addItem("Linewidth", userData=Aggregate.mom2)

        run = QtWidgets.QPushButton("Collapse")
        save = QtWidgets.QPushButton("Save as FITS file")

        buttons = QtWidgets.QHBoxLayout()
        buttons.addWidget(run)
        buttons.addWidget(save)

        self._save = save
        self._run = run

        l.addRow("", combo)
        l.addRow("", buttons)

        self.widget = w
        self._combo = combo
        self._agg = None
Exemple #18
0
    def __init__(self, mdl, ctrl):
        super(ComponentSettings, self).__init__()

        self.mdl = mdl

        hfl = QtWidgets.QFormLayout()
        ct_cmb = QtWidgets.QComboBox()
        for _, i in sorted(mdl_meta.items(), key=lambda i: i[0]):
            ct_cmb.addItem(i.text)

        ct_cmb.setCurrentIndex(self.mdl.cmptype)

        ct_cmb.currentIndexChanged.connect(self.changeTab)

        hfl.addRow("Component Type", ct_cmb)

        self.w_x = UnitEditable(ctrl.mdl, "center.x", UNIT_GROUP_MM)
        hfl.addRow("Position X:", self.w_x.widget)
        self.w_y = UnitEditable(ctrl.mdl, "center.y", UNIT_GROUP_MM)
        hfl.addRow("Position Y:", self.w_y.widget)
        self.w_theta = DegreeEditable(ctrl.mdl, "theta")
        hfl.addRow("Theta:", self.w_theta.widget)

        self.headerWidget.setLayout(hfl)

        for k, i in sorted(mdl_meta.items(), key=lambda i: i[0]):
            self.addAutoWidget(i.widget_cons(mdl.model_instances[k]))

        self.selectWidget(self.mdl.cmptype)

        self.ctrl = ctrl
Exemple #19
0
    def __init__(self, device: microscope.abc.DeformableMirror, *args,
                 **kwargs) -> None:
        super().__init__(*args, **kwargs)
        self._device = device

        self._pattern = numpy.ndarray(shape=(self._device.n_actuators))
        self._actuators: typing.List[QtWidgets.QSlider] = []
        for i in range(self._device.n_actuators):
            actuator = QtWidgets.QSlider(QtCore.Qt.Horizontal, parent=self)
            actuator.setMinimum(0)
            actuator.setMaximum(100)

            def setThisActuator(value, actuator_index=i):
                self.setActuatorValue(actuator_index, value)

            actuator.valueChanged.connect(setThisActuator)
            self._actuators.append(actuator)
        # We don't know the pattern currently applied to the mirror so
        # we reset it which also updates the slider positions.
        self.resetPattern()

        self._reset_button = QtWidgets.QPushButton("Reset", parent=self)
        self._reset_button.clicked.connect(self.resetPattern)

        main_layout = QtWidgets.QVBoxLayout()
        main_layout.addWidget(self._reset_button)

        actuators_layout = QtWidgets.QFormLayout()
        actuators_layout.setLabelAlignment(QtCore.Qt.AlignRight)
        for i, actuator in enumerate(self._actuators, start=1):
            actuators_layout.addRow(str(i), actuator)
        main_layout.addLayout(actuators_layout)

        self.setLayout(main_layout)
Exemple #20
0
    def __init__(self, device: microscope.abc.LightSource, *args,
                 **kwargs) -> None:
        super().__init__(*args, **kwargs)
        self._device = device

        self._enable_check = QtWidgets.QCheckBox("Enabled", parent=self)
        self._enable_check.stateChanged.connect(self.updateEnableState)

        self._set_power_box = QtWidgets.QDoubleSpinBox(parent=self)
        self._set_power_box.setMinimum(0.0)
        self._set_power_box.setMaximum(1.0)
        self._set_power_box.setValue(self._device.power)
        self._set_power_box.setSingleStep(0.01)
        self._set_power_box.setAlignment(QtCore.Qt.AlignRight)
        self._set_power_box.valueChanged.connect(
            lambda x: setattr(self._device, "power", x))

        self._current_power = QtWidgets.QLineEdit(str(self._device.power),
                                                  parent=self)
        self._current_power.setReadOnly(True)
        self._current_power.setAlignment(QtCore.Qt.AlignRight)

        self._get_power_timer = QtCore.QTimer(self)
        self._get_power_timer.timeout.connect(self.updateCurrentPower)
        self._get_power_timer.setInterval(500)  # msec

        self.updateEnableState()

        layout = QtWidgets.QVBoxLayout()
        layout.addWidget(self._enable_check)
        power_layout = QtWidgets.QFormLayout()
        power_layout.addRow("Set power", self._set_power_box)
        power_layout.addRow("Current power", self._current_power)
        layout.addLayout(power_layout)
        self.setLayout(layout)
Exemple #21
0
    def populate_from_schema(
            self,
            schema: dict,
            ui_schema: dict,
            widget_builder: 'WidgetBuilder',  # noqa: F821
    ) -> Dict[str, QtWidgets.QWidget]:
        layout = QtWidgets.QFormLayout()
        self.setLayout(layout)
        layout.setAlignment(QtCore.Qt.AlignTop)
        self.setFlat(False)

        if 'title' in schema:
            self.setTitle(schema['title'])

        if 'description' in schema:
            self.setToolTip(schema['description'])

        # Populate rows
        widgets = {}
        layout.setFieldGrowthPolicy(QtWidgets.QFormLayout.FieldGrowthPolicy(1))
        for name, sub_schema in schema['properties'].items():
            sub_ui_schema = ui_schema.get(name, {})
            widget = widget_builder.create_widget(
                sub_schema, sub_ui_schema)  # TODO onchanged
            widget.on_changed.connect(partial(self.widget_on_changed, name))
            label = sub_schema.get("title", name)
            layout.addRow(label, widget)
            widgets[name] = widget

        return widgets
Exemple #22
0
    def __init__(self, parent, cookiecutter_settings=None, pre_gen_code=None):
        super().__init__(parent)

        # Attributes
        self._parent = parent
        self._cookiecutter_settings = cookiecutter_settings
        self._pre_gen_code = pre_gen_code
        self._widgets = OrderedDict()
        self._defined_settings = OrderedDict()
        self._rendered_settings = OrderedDict()
        self._process = None
        self._tempfile = tempfile.mkstemp(suffix=".py")[-1]

        # Cookiecutter special variables
        self._extensions = None
        self._copy_without_render = None
        self._new_lines = None
        self._private_vars = None
        self._rendered_private_var = None

        # Layout
        self._form_layout = QtWidgets.QFormLayout()
        self._form_layout.setFieldGrowthPolicy(
            self._form_layout.AllNonFixedFieldsGrow)
        self.setLayout(self._form_layout)
Exemple #23
0
    def make_group(
            d,
            name: str = ''
    ):
        g = QtWidgets.QGroupBox()
        g.setTitle(str(name))
        layout = QtWidgets.QFormLayout()
        g.setLayout(layout)

        for row, key in enumerate(d):
            label = QtWidgets.QLabel(str(key))
            value = d[key]
            if isinstance(value, dict):
                wd = make_group(value, '')
                layout.addRow(str(key), wd)
            else:
                if isinstance(value, bool):
                    wd = QtWidgets.QCheckBox()
                    wd.setChecked(value)
                elif isinstance(value, numbers.Real):
                    wd = pg.SpinBox(value=value)
                else:
                    wd = QtWidgets.QLineEdit()
                    wd.setText(str(value))
                layout.addRow(label, wd)
        return g
Exemple #24
0
 def createParameterLayout(self):
     layout = QtWidgets.QFormLayout()
     for parameter, value in self.renderer.get_parameters().items():
         self.parameter_layout[parameter] = QtWidgets.QLineEdit()
         self.parameter_layout[parameter].setText(value)
         layout.addRow(QtWidgets.QLabel(parameter),
                       self.parameter_layout[parameter])
     self.formGroupBox.setLayout(layout)
Exemple #25
0
 def __init__(self, schema=None):
     super(BaseJinxWidget, self).__init__()
     self.mainLayout = QtWidgets.QFormLayout(self)
     self.setLayout(self.mainLayout)
     self.schema = schema()
     self.schema_cls = schema
     self.fields = {k: v for k, v in self.schema._fields.iteritems()}
     self.setup_fields()
Exemple #26
0
    def __init__(self, device: microscope.abc.Device, *args, **kwargs) -> None:
        super().__init__(*args, **kwargs)
        self._device = device

        layout = QtWidgets.QFormLayout(self)
        for key, value in sorted(self._device.get_all_settings().items()):
            layout.addRow(key, QtWidgets.QLabel(parent=self, text=str(value)))
        self.setLayout(layout)
Exemple #27
0
    def init_layout(self):
        # Layout
        self.main_layout = QtWidgets.QVBoxLayout()
        self.setLayout(self.main_layout)

        # Joystick name
        self.name_lbl = QtWidgets.QLabel("Joystick Name")
        self.name_lbl.setSizePolicy(QtWidgets.QSizePolicy.Maximum,
                                    QtWidgets.QSizePolicy.Maximum)
        font = self.name_lbl.font()
        font.setPointSize(12)
        #         font.setWeight(QtWidgets.QFont.Bold)
        self.name_lbl.setFont(font)
        self.name_lay = QtWidgets.QHBoxLayout()
        self.name_lay.addWidget(self.name_lbl, alignment=QtCore.Qt.AlignLeft)
        self.main_layout.addLayout(self.name_lay)

        self.deadband_input = QtWidgets.QDoubleSpinBox()
        self.deadband_input.setToolTip(
            'Give the joystick some dead space for the analog sticks.\n'
            'This helps analog sticks rest at 0.')
        self.deadband_input.setMinimum(0)
        self.deadband_input.setMaximum(1)
        self.deadband_input.setDecimals(4)
        self.deadband_input.valueChanged.connect(self.set_deadband)
        self.deadband_layout = QtWidgets.QFormLayout()
        self.deadband_layout.addRow(QtWidgets.QLabel('Deadband: '),
                                    self.deadband_input)
        self.main_layout.addLayout(self.deadband_layout)

        # Button layouts
        lbl = QtWidgets.QLabel("Axes (Analog sticks or triggers):")
        lbl.setToolTip(
            "Values are scaled -100.0 to 100.0 for the slider display.\n"
            "real values are -1.0 to 1.0")
        self.main_layout.addWidget(lbl)
        self.axis_layout = QtWidgets.QHBoxLayout()
        self.main_layout.addLayout(self.axis_layout)

        self.main_layout.addWidget(QtWidgets.QLabel("Buttons:"))
        self.button_layout = QtWidgets.QVBoxLayout()
        self.main_layout.addLayout(self.button_layout)

        self.main_layout.addWidget(QtWidgets.QLabel("Hats (D-pads):"))
        self.hat_layout = QtWidgets.QHBoxLayout()
        self.main_layout.addLayout(self.hat_layout)

        self.main_layout.addWidget(QtWidgets.QLabel("Track Balls:"))
        self.ball_layout = QtWidgets.QHBoxLayout()
        self.main_layout.addLayout(self.ball_layout)

        # Select joystick button
        self.sel_btn = QtWidgets.QPushButton("Select Joystick")
        self.sel_btn.setSizePolicy(QtWidgets.QSizePolicy.Maximum,
                                   QtWidgets.QSizePolicy.Maximum)
        self.sel_btn.clicked.connect(self.select_joystick)
        self.name_lay.addWidget(self.sel_btn, alignment=QtCore.Qt.AlignLeft)
        self._dialog = None
    def setupUi(self, rsd, sources_json):

        # setup static elements
        rsd.setObjectName("Restore Sources")
        rsd.resize(1150, 640)
        self.buttonBox = QtWidgets.QDialogButtonBox(rsd)
        self.buttonBox.setGeometry(QtCore.QRect(10, 600, 1130, 35))
        self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel
                                          | QtWidgets.QDialogButtonBox.Ok)
        self.buttonBox.setObjectName("buttonBoxOkCancel")
        self.label = QtWidgets.QLabel(rsd)
        self.label.setGeometry(QtCore.QRect(20, 10, 1120, 140))
        self.label.setWordWrap(True)
        self.label.setObjectName("labelInstructions")
        self.scrollArea = QtWidgets.QScrollArea(rsd)
        self.scrollArea.setGeometry(QtCore.QRect(10, 150, 1130, 440))
        self.scrollArea.setHorizontalScrollBarPolicy(
            QtCore.Qt.ScrollBarAlwaysOff)
        self.scrollArea.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
        self.scrollArea.setWidgetResizable(True)
        self.scrollArea.setObjectName("scrollArea")
        self.scrollAreaWidget = QtWidgets.QWidget()
        self.scrollAreaWidgetContents = QtWidgets.QFormLayout()
        self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")

        # Create 1 set of (checkbox, label, combobox per fromcategory

        for index, source in enumerate(sources_json):
            objectdict = {'checkbox': None, 'label': None}
            layout = QtWidgets.QHBoxLayout()
            objectdict['checkbox'] = QtWidgets.QCheckBox()
            objectdict['checkbox'].setGeometry(QtCore.QRect(0, 0, 20, 20))
            objectdict['checkbox'].setText("")
            objectdict['checkbox'].setObjectName("checkBox" + str(index))
            objectdict['checkbox'].setCheckState(2)
            layout.addWidget(objectdict['checkbox'])
            objectdict['label'] = QtWidgets.QLabel()
            objectdict['label'].setGeometry(QtCore.QRect(0, 0, 480, 25))
            objectdict['label'].setObjectName("label" + str(index))
            if 'name' in source:
                objectdict['label'].setText(source['name'])
            elif 'config' in source:
                objectdict['label'].setText(source['config']['name'])
            layout.addWidget(objectdict['label'])

            self.objectlist.append(objectdict)
            self.scrollAreaWidgetContents.addRow(layout)

        self.scrollAreaWidget.setLayout(self.scrollAreaWidgetContents)
        self.scrollArea.setWidget(self.scrollAreaWidget)
        self.scrollArea.show()

        self.retranslateUi(rsd)
        self.buttonBox.accepted.connect(rsd.accept)
        self.buttonBox.rejected.connect(rsd.reject)
        QtCore.QMetaObject.connectSlotsByName(rsd)
Exemple #29
0
 def __init__(self, model, parent, source='user'):
     QtWidgets.QWidget.__init__(self, parent)
     self.model = model
     self.config_to_widget = {}
     self.widget_to_config = {}
     self.source = source
     self.config = gitcfg.current()
     self.defaults = {}
     self.setLayout(QtWidgets.QFormLayout())
Exemple #30
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        vbox = QtWidgets.QVBoxLayout()
        vbox.setContentsMargins(5, 5, 5, 5)
        vbox.setMargin(5)
        self.setLayout(vbox)

        flay = QtWidgets.QFormLayout()
        vbox.addLayout(flay)

        self.formConfig = QtWidgets.QLineEdit()
        self.formConfig.setReadOnly(True)
        flay.addRow('Form', self.formConfig)

        self.settingsFileName = DirFileLayout('',
                                              loadCall=self.loadValues,
                                              saveCall=self.saveValues)
        flay.addRow('Settings', self.settingsFileName)

        self.templateForm = TemplateScrollForm(self)
        vbox.addWidget(self.templateForm)

        flay = QtWidgets.QFormLayout()
        vbox.addLayout(flay)

        self.codeTemplate = QtWidgets.QLineEdit()
        self.codeTemplate.setReadOnly(True)
        flay.addRow('Script Template', self.codeTemplate)

        self.scriptFileName = FileLayout('', save=True)
        flay.addRow('Script', self.scriptFileName)

        hbox = QtWidgets.QHBoxLayout()
        hbox.setMargin(0)
        vbox.addLayout(hbox)

        self.makeBtn = QtWidgets.QPushButton('Make')
        self.makeBtn.setIcon(
            QtGui.QIcon(
                str(respath / 'icons' / 'px16' / 'script_lightning.png')))
        self.makeBtn.clicked.connect(self.make)

        hbox.addWidget(self.makeBtn)