def __init__(self, master: Union[QWidget, None], settings: Dict[str, Dict[str, SettingsType]]): super().__init__(master, windowTitle="Visual Settings") self.__controls: Dict[KeyType, Tuple[QWidget, ValueType]] = {} self.__changed_settings: Dict[KeyType, ValueType] = {} self.setting_changed.connect(self.__on_setting_changed) layout = QVBoxLayout() layout.setContentsMargins(0, 0, 0, 0) self.setLayout(layout) self.main_box = gui.vBox(self, box=None) # type: QWidget buttons = QDialogButtonBox( orientation=Qt.Horizontal, standardButtons=QDialogButtonBox.Close | QDialogButtonBox.Reset, ) closeButton = buttons.button(QDialogButtonBox.Close) closeButton.clicked.connect(self.close) resetButton = buttons.button(QDialogButtonBox.Reset) resetButton.clicked.connect(self.__reset) resetButton.setAutoDefault(False) layout.addWidget(buttons) self.__initialize(settings)
def listView(widget, master, value=None, model=None, box=None, callback=None, sizeHint=None, *, viewType=ListViewWithSizeHint, **misc): if box: bg = vBox(widget, box, addToLayout=False) else: bg = widget view = viewType(preferred_size=sizeHint) view.setModel(model) if value is not None: connectControl(master, value, callback, view.selectionModel().selectionChanged, CallFrontListView(view), CallBackListView(model, view, master, value)) misc.setdefault('addSpace', True) misc.setdefault('uniformItemSizes', True) miscellanea(view, bg, widget, **misc) return view
def __initialize(self, settings: Dict[str, Dict[str, SettingsType]]): for box_name in settings: box = gui.vBox(self.main_box, box=box_name) form = QFormLayout() form.setFormAlignment(Qt.AlignLeft | Qt.AlignTop) form.setLabelAlignment(Qt.AlignLeft) box.layout().addLayout(form) for label, values in settings[box_name].items(): self.__add_row(form, box_name, label, values) self.main_box.adjustSize()
def _setup_control_area(self) -> None: box = gui.widgetBox(self.controlArea, "Word Scoring Methods") for value, (n, _, tt) in SCORING_METHODS.items(): b = gui.hBox(box, margin=0) gui.checkBox( b, self, value, label=n, callback=self.__setting_changed, tooltip=tt, ) if value in ADDITIONAL_OPTIONS: value, options = ADDITIONAL_OPTIONS[value] gui.comboBox( b, self, value, items=options, callback=self.__setting_changed, ) box = gui.widgetBox(self.controlArea, "Aggregation") gui.comboBox( box, self, "aggregation", items=[n for n in AGGREGATIONS], callback=self.__setting_changed, ) gui.rubber(self.controlArea) # select words box box = gui.vBox(self.buttonsArea, "Select Documents") grid = QGridLayout() grid.setContentsMargins(0, 0, 0, 0) self._sel_method_buttons = QButtonGroup() for method, label in enumerate(SelectionMethods.ITEMS): button = QRadioButton(label) button.setChecked(method == self.sel_method) grid.addWidget(button, method, 0) self._sel_method_buttons.addButton(button, method) self._sel_method_buttons.buttonClicked[int].connect( self.__set_selection_method) spin = gui.spin( box, self, "n_selected", 1, 999, addToLayout=False, callback=lambda: self.__set_selection_method(SelectionMethods. N_BEST), ) grid.addWidget(spin, 3, 1) box.layout().addLayout(grid) # autocommit gui.auto_send(self.buttonsArea, self, "auto_commit")