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()
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()
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)
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
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)
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)
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)
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)
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)
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()
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()
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)
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
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
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
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)
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)
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
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)
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
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)
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()
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)
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)
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())
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)