def loadFromScheduler(self): # actWhen ComboBox for row, pair in enumerate(self.scheduler.POSSIBLE_ACTWHENS): self.comboBox_actWhen.addItem(pair[1]) self.comboBox_actWhen.setItemData(row, pair[0]) self.slotActWhenChanged(self.scheduler.actWhen) self.comboBox_actWhen.setCurrentIndex(self.scheduler.actWhen) self.comboBox_actWhen.activated[int].connect(self.slotActWhenChanged) # tasks list runningTasks = app.etmpy.runningTasksStat.getTasks() waitingTaskIds = self.scheduler.waitingTaskIds for rTaskId, rTask in runningTasks.items(): item = QListWidgetItem(rTask["name"]) item.setData(Qt.UserRole, rTaskId) self.listWidget_tasks.addItem(item) # must be set before being added if rTaskId in waitingTaskIds: item.setSelected(True) else: item.setSelected(False) # action comboBox selectedIndex = None for action in self.scheduler.actions: if action.command or action.availability == "yes": self.comboBox_action.addItem(action.displayName) row = self.comboBox_action.count() - 1 self.comboBox_action.setItemData(row, action.actionId) if self.scheduler.actionId == action.actionId: selectedIndex = row self.comboBox_action.setCurrentIndex(selectedIndex)
def __init__(self, parameter, parent=None): """Constructor .. versionadded:: 2.2 :param parameter: A ListParameter object. :type parameter: ListParameter """ super().__init__(parameter, parent) self._input = QListWidget() self._input.setSelectionMode(QAbstractItemView.MultiSelection) if self._parameter.maximum_item_count != \ self._parameter.minimum_item_count: tool_tip = 'Select between %d and %d items' % ( self._parameter.minimum_item_count, self._parameter.maximum_item_count) else: tool_tip = 'Select exactly %d items' % ( self._parameter.maximum_item_count) self._input.setToolTip(tool_tip) for opt in self._parameter.options_list: item = QListWidgetItem() item.setFlags(item.flags() | Qt.ItemIsEditable) item.setText(str(opt)) self._input.addItem(item) if opt in self._parameter.value: item.setSelected(True) self.inner_input_layout.addWidget(self._input) # override self._input_layout arrangement to make the label at the top # reset the layout self.input_layout.setParent(None) self.help_layout.setParent(None) self.label.setParent(None) self.inner_input_layout.setParent(None) self.input_layout = QVBoxLayout() self.input_layout.setSpacing(0) # put element into layout self.input_layout.addWidget(self.label) self.input_layout.addLayout(self.inner_input_layout) self.main_layout.addLayout(self.input_layout) self.main_layout.addLayout(self.help_layout)
def update_gui(self): selected_file_names = [selection_el.text() for selection_el in self.file_selection_listwidget.selectedItems()] # computing_group hyd_names = get_filename_by_type_physic("hydraulic", os.path.join(self.path_prj, "hdf5")) hab_names = get_filename_by_type_physic("habitat", os.path.join(self.path_prj, "hdf5")) names = hyd_names + hab_names self.file_selection_listwidget.blockSignals(True) self.file_selection_listwidget.clear() self.hs_computed_listwidget.blockSignals(True) self.hs_computed_listwidget.clear() if names: for name in names: # filename item_name = QListWidgetItem() item_name.setText(name) self.file_selection_listwidget.addItem(item_name) if name in selected_file_names: item_name.setSelected(True) # check item = QListWidgetItem() item.setText("") item.setFlags(item.flags() | Qt.ItemIsUserCheckable) try: hdf5 = Hdf5Management(self.path_prj, name, new=False, edit=False) hdf5.get_hdf5_attributes(close_file=True) if hdf5.hs_calculated: item.setCheckState(Qt.Checked) else: item.setCheckState(Qt.Unchecked) except: self.send_log.emit(self.tr("Error: " + name + " file seems to be corrupted. Delete it with HABBY or manually.")) self.hs_computed_listwidget.addItem(item) item.setTextAlignment(Qt.AlignCenter) self.file_selection_listwidget.blockSignals(False) self.hs_computed_listwidget.blockSignals(False) # preselection if one if self.file_selection_listwidget.count() == 1: self.file_selection_listwidget.selectAll()
def initTab(self): # connect tab and item self.tab_widget.currentRowChanged.connect(self.item_widget.setCurrentIndex) self.tab_widget.currentRowChanged.connect(self.map_choose) for i in range(len(self.list_str)): # add item to tab font = QFont() font.setBold(True) font.setWeight(50) font.setPixelSize(14) item = QListWidgetItem(self.list_str[i], self.tab_widget) item.setSizeHint(QSize(30, 50)) item.setFont(font) item.setTextAlignment(Qt.AlignCenter) if i == 0: item.setSelected(True) # add item content if self.name == strings.TYPE_POLICY: self.item_widget.addWidget(eval(self.list_item[i])) elif self.name == strings.TYPE_MAP: self.item_widget.addWidget(MapDescription(self.list_str[i]))
def createGroupBox(self, layout): group1 = QGroupBox(self) group1.setTitle(self.tr("KDE Themes")) group1.setMinimumHeight(180) layout.addWidget(group1) grLayout = QVBoxLayout(group1) listWidget1 = QListWidget(group1) grLayout.addWidget(listWidget1) layout.addItem(QSpacerItem(20, 40, QSizePolicy.Preferred, QSizePolicy.Preferred)) group2 = QGroupBox(self) group2.setTitle(self.tr("Icon Sets")) group2.setMinimumHeight(140) group2.setMaximumHeight(150) layout.addWidget(group2) grLayout2 = QVBoxLayout(group2) listWidget2 = QListWidget(group2) listWidget2.setViewMode(QListView.IconMode) listWidget2.setIconSize(QSize(384, 72)) item = QListWidgetItem(listWidget2) item.setIcon(QIcon(":/data/images/oxygen-set.png")) item.setText("Oxygen") item = QListWidgetItem(listWidget2) item.setIcon(QIcon(":/data/images/breeze-set.png")) item.setText("Breeze") item.setSelected(True) listWidget2.itemClicked.connect(self.iconSetSelect) grLayout2.addWidget(listWidget2)
def refreshCurrentFolder(self, new_folder=None): # -- set new current folder if new_folder is not None: self.current_folder = new_folder if self.current_folder is None: return # -- get selected sequences and runs selected_sequences = [item.text() for item in self.seqList.selectedItems()] selected_runs = [ item.data(Qt.UserRole) for item in self.runList.selectedItems() ] # handle case where "all" is selected if "[all]" in selected_sequences: selected_sequences = [] # -- get current index # run list item = self.runList.currentItem() current_run = item.data(Qt.UserRole) if item is not None else None # seq list item = self.seqList.currentItem() current_seq = item.data(Qt.UserRole) if item is not None else None # -- get current focus, to restore it after refresh if self.runList.hasFocus(): focus_widget = self.runList elif self.seqList.hasFocus(): focus_widget = self.seqList elif self.refreshRunListButton.hasFocus(): # by default, set focus to runList when the refresh button is clicked ! focus_widget = self.runList else: focus_widget = None # -- BLOCK SIGNALS self.seqList.blockSignals(True) self.runList.blockSignals(True) # -- reset lists # clear self.runList.clear() self.seqList.clear() # add "all" to seqlist item = QListWidgetItem() item.setText("[all]") item.setData(Qt.UserRole, None) self.seqList.addItem(item) # -- check that the folder exists if not self.current_folder.is_dir(): self.runList.addItems(["Folder does not exists"]) self.seqList.blockSignals(False) self.runList.blockSignals(False) return # -- get content and update list data_class = self.dataTypeComboBox.currentData() dir_content = exploreDayFolder(self.current_folder, data_class) for content in dir_content: # - skip if empty if not content["file_list"]: continue # - add subdir item # normal formatting > for seqList item = QListWidgetItem() item.setText(content["name"]) item.setData(Qt.UserRole, content["path"]) self.seqList.addItem(item) # stop here if not selected if selected_sequences and content["name"] not in selected_sequences: continue # special formatting > for runList item = QListWidgetItem() item.setText(content["name"]) item.setData(Qt.UserRole, content["path"]) item.setForeground(QColor(0, 0, 255)) # https://joekuan.files.wordpress.com/2015/09/screen3.png item.setIcon(self.style().standardIcon(QStyle.SP_DirIcon)) self.runList.addItem(item) # - add files items n_files = len(content["file_list"]) for i, file in enumerate(content["file_list"]): # good prefix if i == n_files - 1: prefix = "└─ " else: prefix = "├─ " # is there a fit ? suffix = "" if fitting.saved_fit_exist(self, file): # ideas for markers : # 🟩, ✳️ ✔️ # see https://emojipedia.org suffix += " ✔️" # format display name with the data object data = data_class(path=file) display_name = data.getDisplayName() # add item item = QListWidgetItem() # NB: use file.stem to remove ext item.setText(prefix + display_name + suffix) item.setData(Qt.UserRole, file) self.runList.addItem(item) # -- restore selections # run list for i in range(self.runList.count()): item = self.runList.item(i) data = item.data(Qt.UserRole) if data in selected_runs: item.setSelected(True) if data == current_run: self.runList.setCurrentItem(item) # seq list for i in range(self.seqList.count()): item = self.seqList.item(i) name = item.text() if name in selected_sequences: item.setSelected(True) if name == current_seq: self.seqList.setCurrentItem(item) # -- UNBLOCK SIGNALS self.seqList.blockSignals(False) self.runList.blockSignals(False) # -- restore focus if focus_widget is not None: focus_widget.setFocus()
def __init__(self): super(self.__class__, self).__init__() self.N0 = 1000 self.N1 = 1000 self.setupUi(self) self.plotButton.clicked.connect(self.plot_data) self.clearButton.clicked.connect(self.clear_data) self.loadButton.clicked.connect(self.load_file) self.peakButton.clicked.connect(self.find_peaks) ## Not implemented self.peakButton.setEnabled(False) self.thresholdSlider.setEnabled(False) self.saveButton.clicked.connect(self.save) self.fitButton.clicked.connect(self.fit_data) self.datasetCombo.currentTextChanged.connect(self.plot_bg) self.removeBackgroundBox.stateChanged.connect(self.plot_bg) self.data = np.zeros((self.N0, self.N1)) self.data[0, 0] = 1 self.data[-1, -1] = 1 self.inputfile = None self.bgplot = self.plotarea.canvas.ax.matshow(self.data, vmin=0, vmax=1) self.peaks = np.zeros((self.N0, self.N1)) self.peaks[:] = np.nan self.peaksplot = self.plotarea.canvas.ax.matshow(self.peaks, vmin=0, vmax=1, cmap="gray") self.plotarea.canvas.ax.set_xlim(0, self.N1) self.plotarea.canvas.ax.set_ylim(self.N0, 0) self.plotarea.canvas.draw_idle() self.rangeSlider.startValueChanged.connect(self.setclim) self.rangeSlider.endValueChanged.connect(self.setclim) self.redrawtimer = QTimer() self.redrawtimer.setSingleShot(True) self.redrawtimer.timeout.connect(self.plotarea.canvas.draw) for i, ax in enumerate(axes): label = np.array2string(np.array(ax), precision=0) item = QListWidgetItem(label) item.setData(1, ax) self.reflexList.addItem(item) if ax in axesactive: item.setSelected(True) for el in [ self.angleXSpin, self.angleYSpin, self.angleZSpin, self.transXSpin, self.transYSpin, self.transZSpin, self.energySpin, self.latticeSpin, ]: el.valueChanged.connect(self.invalidate_plot) self.plotpoints = {} self.testpoints = None def styles(i=0): colors = ( "#1f77b4", "#aec7e8", "#ff7f0e", "#ffbb78", "#2ca02c", "#98df8a", "#d62728", "#ff9896", "#9467bd", "#c5b0d5", "#8c564b", "#c49c94", "#e377c2", "#f7b6d2", "#7f7f7f", "#c7c7c7", "#bcbd22", "#dbdb8d", "#17becf", "#9edae5", ) markers = (".", "+", "x") while True: yield colors[i % len(colors)], markers[(i // len(colors)) % len(markers)] i += 1 self.sgen = styles() self.inputfilename = None self.plotarea.canvas.mpl_connect("motion_notify_event", self.mpl_move) self.plotarea.canvas.mpl_connect("button_release_event", self.mpl_release)
def setSelected(self, select): if self.fWidget is not None: self.fWidget.setSelected(select) QListWidgetItem.setSelected(self, select)
def __init__(self, elder): super().__init__() self.elder = elder self.layout = QGridLayout(self) self.settings = elder.settings self.listener = elder.listener paths = QGroupBox(self) paths.setTitle('Paths') paths_layout = QGridLayout(paths) self.layout.addWidget(paths) label = QLabel(paths) label.setText('Fiddler') paths_layout.addWidget(label, 0, 0, 1, 1) self.fiddler_path = QLineEdit(paths) self.fiddler_path.setText(self.settings.paths['Fiddler']) self.fiddler_path.setDisabled(True) paths_layout.addWidget(self.fiddler_path, 0, 1, 1, 1) button = QPushButton(paths) button.setText('...') button.clicked.connect(lambda: self.set_path('fiddler')) paths_layout.addWidget(button, 0, 2, 1, 1) label = QLabel(paths) label.setText('TurboHUD') paths_layout.addWidget(label, 1, 0, 1, 1) self.turbohud_path = QLineEdit(paths) self.turbohud_path.setText(self.settings.paths['TurboHUD']) self.turbohud_path.setDisabled(True) paths_layout.addWidget(self.turbohud_path, 1, 1, 1, 1) button = QPushButton(paths) button.setText('...') button.clicked.connect(lambda: self.set_path('turbohud')) paths_layout.addWidget(button, 1, 2, 1, 1) label = QLabel(paths) label.setText('pHelper') paths_layout.addWidget(label, 2, 0, 1, 1) self.phelper_path = QLineEdit(paths) self.phelper_path.setText(self.settings.paths['pHelper']) self.phelper_path.setDisabled(True) paths_layout.addWidget(self.phelper_path, 2, 1, 1, 1) button = QPushButton(paths) button.setText('...') button.clicked.connect(lambda: self.set_path('phelper')) paths_layout.addWidget(button, 2, 2, 1, 1) image_recognition = QGroupBox(self) image_recognition.setTitle('Auto Stuff (Image Recognition)') image_recognition_layout = QGridLayout(image_recognition) self.layout.addWidget(image_recognition, 0, 1) checkbox = QCheckBox(image_recognition) checkbox.setText('Auto start Game') checkbox.setChecked(self.settings.special['auto_start']) checkbox.clicked.connect(lambda: self.checkbox_clicked('auto_start')) image_recognition_layout.addWidget(checkbox, 0, 0) checkbox = QCheckBox(image_recognition) checkbox.setText('Auto open Rift / Grift') checkbox.setChecked(self.settings.special['auto_open']) checkbox.clicked.connect(lambda: self.checkbox_clicked('auto_open')) image_recognition_layout.addWidget(checkbox, 1, 0) radio = QRadioButton(image_recognition) radio.setText('Rift') radio.setChecked(self.settings.special['auto_open_option'] == 'rift') radio.clicked.connect(lambda: self.radio_clicked('rift')) image_recognition_layout.addWidget(radio, 2, 0) radio = QRadioButton(image_recognition) radio.setText('Grift') radio.setChecked(self.settings.special['auto_open_option'] == 'grift') radio.clicked.connect(lambda: self.radio_clicked('grift')) image_recognition_layout.addWidget(radio, 2, 1) checkbox = QCheckBox(image_recognition) checkbox.setText('Auto accept Grift') checkbox.setChecked(self.settings.special['auto_accept_gr']) checkbox.clicked.connect( lambda: self.checkbox_clicked('auto_accept_gr')) image_recognition_layout.addWidget(checkbox, 3, 0) checkbox = QCheckBox(image_recognition) checkbox.setText('Auto upgrade Gem') checkbox.setChecked(self.settings.special['auto_upgrade_gem']) checkbox.clicked.connect( lambda: self.checkbox_clicked('auto_upgrade_gem')) image_recognition_layout.addWidget(checkbox, 4, 0) checkbox = QCheckBox(image_recognition) checkbox.setText('Auto gamble') checkbox.setChecked(self.settings.special['auto_gamble']) checkbox.clicked.connect(lambda: self.checkbox_clicked('auto_gamble')) image_recognition_layout.addWidget(checkbox, 5, 0) poolspots = QGroupBox(self) poolspots.setTitle('Poolspots') poolspots_layout = QGridLayout(poolspots) self.layout.addWidget(poolspots, 1, 0) self.poolspot_list = QListWidget(poolspots) self.poolspot_list.setSelectionMode(QListWidget.MultiSelection) for act, ps in ressources.poolspots().items(): for poolspot in ps: item = QListWidgetItem(self.poolspot_list) item.setText( f'Act {act}: {string.capwords(poolspot.replace("_", " "))}' ) item.poolspot = poolspot if poolspot in self.settings.poolspots: item.setSelected(True) self.poolspot_list.itemSelectionChanged.connect(self.update_poolspots) poolspots_layout.addWidget(self.poolspot_list) # button = QPushButton(poolspots) # button.setText('Save') # button.clicked.connect(self.update_poolspots) # poolspots_layout.addWidget(button) gamble_item = QGroupBox(self) gamble_item.setTitle('Gamble Item') gamble_item_layout = QGridLayout(gamble_item) self.layout.addWidget(gamble_item, 1, 1) self.gamble_item_list = QListWidget(gamble_item) self.gamble_item_list.setSelectionMode(QListWidget.SingleSelection) for _item in ressources.items(): item = QListWidgetItem(self.gamble_item_list) item.setText(string.capwords(_item.replace('_', ' '))) item.item = _item if _item == self.settings.special['gamble_item']: item.setSelected(True) self.gamble_item_list.itemSelectionChanged.connect( self.update_gamble_item) gamble_item_layout.addWidget(self.gamble_item_list) self.setLayout(self.layout)
def __init__(self, parent: QWidget): super(SettingsWidget, self).__init__(parent, Qt.Window) # config parser self._cfg = configparser.ConfigParser() # layouts self._layout_main = QVBoxLayout() self._layout_stacks = QHBoxLayout() self._layout_okcancel = QHBoxLayout() # sections list self._sections_list = QListWidget(self) self._sections_list.setSelectionMode(QAbstractItemView.SingleSelection) self._sections_list.setSelectionBehavior(QAbstractItemView.SelectItems) self._sections_list.setIconSize(QSize(32, 32)) self._sections_list.setViewMode(QListView.IconMode) self._sections_list.setMaximumWidth(80) self._sections_list.setGridSize(QSize(64, 64)) self._sections_list.setFlow(QListView.TopToBottom) self._sections_list.setMovement( QListView.Static) # items cannot be moved by user # network item lwi = QListWidgetItem() lwi.setText(self.tr('Network')) lwi.setTextAlignment(Qt.AlignCenter) lwi.setIcon(QIcon(':/i/settings_network_32.png')) lwi.setData(Qt.UserRole, QVariant(0)) self._sections_list.addItem(lwi) lwi.setSelected(True) # misc item lwi = QListWidgetItem() lwi.setText(self.tr('Other')) lwi.setTextAlignment(Qt.AlignCenter) lwi.setIcon(QIcon(':/i/settings_32.png')) lwi.setData(Qt.UserRole, QVariant(1)) self._sections_list.addItem(lwi) # connections self._sections_list.currentItemChanged.connect( self.on_section_current_item_changed) self._layout_stacks.addWidget(self._sections_list) # stacked widget self._stack = QStackedWidget(self) self._w_net = Settings_Net(self._stack) self._w_misc = Settings_Misc(self._stack) self._stack.addWidget(self._w_net) self._stack.addWidget(self._w_misc) self._stack.setCurrentIndex(0) self._layout_stacks.addWidget(self._stack) # ok cancel buttons self._btn_ok = QPushButton(self) self._btn_ok.setText(self.tr('Save')) self._btn_ok.setIcon(QIcon(':/i/save.png')) self._btn_cancel = QPushButton(self) self._btn_cancel.setText(self.tr('Cancel')) self._btn_cancel.setIcon(QIcon(':/i/cancel.png')) self._layout_okcancel.addStretch() self._layout_okcancel.addWidget(self._btn_ok) self._layout_okcancel.addWidget(self._btn_cancel) self._btn_ok.clicked.connect(self.on_ok) self._btn_cancel.clicked.connect(self.on_cancel) # final self._layout_main.addLayout(self._layout_stacks) self._layout_main.addLayout(self._layout_okcancel) self.setLayout(self._layout_main) self.setWindowTitle(self.tr('Settings')) self.setWindowIcon(QIcon(':/i/settings_32.png')) # self.load_settings()
def __init__(self, parent: QWidget): super(SettingsWidget, self).__init__(parent, Qt.Window) # config parser self._cfg = configparser.ConfigParser() # layouts self._layout_main = QVBoxLayout() self._layout_stacks = QHBoxLayout() self._layout_okcancel = QHBoxLayout() # sections list self._sections_list = QListWidget(self) self._sections_list.setSelectionMode(QAbstractItemView.SingleSelection) self._sections_list.setSelectionBehavior(QAbstractItemView.SelectItems) self._sections_list.setIconSize(QSize(32, 32)) self._sections_list.setViewMode(QListView.IconMode) self._sections_list.setMaximumWidth(80) self._sections_list.setGridSize(QSize(64, 64)) self._sections_list.setFlow(QListView.TopToBottom) self._sections_list.setMovement(QListView.Static) # items cannot be moved by user # network item lwi = QListWidgetItem() lwi.setText(self.tr("Network")) lwi.setTextAlignment(Qt.AlignCenter) lwi.setIcon(QIcon(":/i/settings_network_32.png")) lwi.setData(Qt.UserRole, QVariant(0)) self._sections_list.addItem(lwi) lwi.setSelected(True) # misc item lwi = QListWidgetItem() lwi.setText(self.tr("Other")) lwi.setTextAlignment(Qt.AlignCenter) lwi.setIcon(QIcon(":/i/settings_32.png")) lwi.setData(Qt.UserRole, QVariant(1)) self._sections_list.addItem(lwi) # connections self._sections_list.currentItemChanged.connect(self.on_section_current_item_changed) self._layout_stacks.addWidget(self._sections_list) # stacked widget self._stack = QStackedWidget(self) self._w_net = Settings_Net(self._stack) self._w_misc = Settings_Misc(self._stack) self._stack.addWidget(self._w_net) self._stack.addWidget(self._w_misc) self._stack.setCurrentIndex(0) self._layout_stacks.addWidget(self._stack) # ok cancel buttons self._btn_ok = QPushButton(self) self._btn_ok.setText(self.tr("Save")) self._btn_ok.setIcon(QIcon(":/i/save.png")) self._btn_cancel = QPushButton(self) self._btn_cancel.setText(self.tr("Cancel")) self._btn_cancel.setIcon(QIcon(":/i/cancel.png")) self._layout_okcancel.addStretch() self._layout_okcancel.addWidget(self._btn_ok) self._layout_okcancel.addWidget(self._btn_cancel) self._btn_ok.clicked.connect(self.on_ok) self._btn_cancel.clicked.connect(self.on_cancel) # final self._layout_main.addLayout(self._layout_stacks) self._layout_main.addLayout(self._layout_okcancel) self.setLayout(self._layout_main) self.setWindowTitle(self.tr("Settings")) self.setWindowIcon(QIcon(":/i/settings_32.png")) # self.load_settings()
def _blinkOff(self, li: QListWidgetItem, initMilis: int): QTimer.singleShot(initMilis, lambda:li.setSelected(False)) QTimer.singleShot(initMilis + 100, lambda:li.setSelected(True)) QTimer.singleShot(initMilis + 300, lambda:li.setSelected(False)) QTimer.singleShot(initMilis + 300, self.disableSelection)