def on_edit_view(self, item: QListWidgetItem = None): if item is None or isinstance(item, bool): items = self.lstViews.selectedItems() try: item = items[0] except IndexError: return name = item.data(ProcessDataDialog.NameRole) try: widget_class = AVAILABLE_NETWORK_WIDGETS[name] except KeyError: return else: if widget_class is not None: id_ = item.data(ProcessDataDialog.IdRole) options = self._options.get(id_, {}) dialog = widget_class.dialog_class(self, options=options) def set_options(result): if result == QDialog.Accepted: options = dialog.getValues() self._options[id_] = options dialog.finished.connect(set_options) dialog.open()
def set_selection(self, item: QtWidgets.QListWidgetItem, *args): """Called when a recent item is selected""" self.project_path = get_project_file(item.data(QtCore.Qt.UserRole)) if not self.project_path: # TODO: Fix this, when user selects item multiple time the statement is re-appended item.setText("{} - Project Moved or Deleted".format(item.data(QtCore.Qt.UserRole))) self.log.debug("Project path set to {}".format(self.project_path))
def export_color_item(self, item: QListWidgetItem) -> List[str]: color = item.data(Qt.BackgroundRole).color() polygon_id = item.data(BaseColorMappingDialog.PolygonRole) polygon_id = polygon_id if polygon_id is not None else NodePolygon.Circle brushstyle = item.data(BaseColorMappingDialog.BrushStyleRole) brushstyle = brushstyle if brushstyle is not None else Qt.NoBrush if color is not None and color.isValid(): return color.name(), polygon_id.name, brushstyle
def onAddClicked(self, flag): if not self.__ui.leAssloudDir.text().endswith('bundle'): return new_item = QListWidgetItem() if flag == '_assloud': new_name = '新包名' new_item.setData(Qt.UserRole, new_name) new_item.setText(new_item.data(Qt.UserRole)) self.__model.addNewItem(flag, new_item, Qt.UserRole) elif flag == '_asset': new_name = '新资源名' new_item.setData(Qt.UserRole, new_name) new_item.setText(new_item.data(Qt.UserRole)) self.__model.addNewItem(flag, new_item, Qt.UserRole)
def on_list_item_double_clicked(self, item: QListWidgetItem): try: path = item.data(Qt.UserRole)['path'] os.startfile(path) except OSError as e: QMessageBox.critical(self, "Error", e.strerror, QMessageBox.Ok, QMessageBox.Ok)
def deviceChanged(self, item: QtWidgets.QListWidgetItem): if item is None: return self.currentBaudRateBps = None self.currentPhase = None self.btParamLabel.setText(self.BT_PARAM_LABEL) self.arbitrationBaudRateList.clear() self.dataBaudRateList.clear() self.bitTimingTable.clearContents() self.bitTimingTable.setRowCount(0) self.canvas.scene.clear() device: CanDevice = item.data(QtCore.Qt.UserRole) self.f_in_MHz_value.setValue(int(device.F_in / 1e6)) self.f_in_MHz_value.setStyleSheet('background-color: white;') for timingInfo in device.TimingInfos.values(): if timingInfo.Phase is CanPhase.Arbitration: brList = [ br * 1000 for br in CanBaudRatesKbps if br <= device.MaxBaudRate ] listWidget = self.arbitrationBaudRateList elif timingInfo.Phase is CanPhase.Data: brList = [ br * 1000 for br in CanFDBaudRatesKbps if br <= device.MaxFDBaudRate ] listWidget = self.dataBaudRateList else: raise TypeError for baudRateBps in brList: item = QtWidgets.QListWidgetItem(f'{baudRateBps/1000:.1f}') item.setData(QtCore.Qt.UserRole, (timingInfo.Phase, baudRateBps)) listWidget.addItem(item)
def course_clicked(self, item: QListWidgetItem): """Called when a course is selected, switches the view to display assignments for that course """ course = self.planner.get_course(item.data(1)) self.planner.set_current_course(course) self.course_page.refresh()
def _on_current_item_changed(self, item: QListWidgetItem, last_item: QListWidgetItem) -> None: account_id = item.data(Qt.UserRole) # This should update the internal tracking, and also the active wallet account. if self._update_active_account(account_id): account = self._main_window._wallet.get_account(account_id) self._update_window_account(account)
def handleAssetUpdate(self, _status, _data): self.__ui.lwAssetList.clear() for asset_name in _status.asset: item_asset = QListWidgetItem() # 资源列表 item_asset.setData(Qt.UserRole, asset_name) # 设置item的uid item_asset.setText(item_asset.data(Qt.UserRole)) self.__ui.lwAssetList.addItem(item_asset)
def onAddClicked(self): if self.__ui.cbAssetBundleList.count() == 0: return new_item = QListWidgetItem() new_name = '新资源名' new_item.setData(Qt.UserRole, new_name) new_item.setText(new_item.data(Qt.UserRole)) self.__model.addNewItem(new_item, Qt.UserRole)
def onCurrentTweakItemChanged( self, current: QtWidgets.QListWidgetItem, previous: QtWidgets.QListWidgetItem ): # Clear text area and create the tweaks: self.ui.tweaksTextEdit.clear() self.ui.tweaksTextEdit.appendPlainText( make_ini_tweaks(current.data(Qt.UserRole)) )
def _onItemClicked(self, item: QListWidgetItem) -> None: self._labelNetworkType.setText(item.text()) op = item.data(Qt.UserRole) self._labelOperation.setText(f"{len(op.name)}") self._labelInputs.setText(", ".join( [f"{t.name} [{t.shape}]" for t in op.inputs])) self._labelOutputs.setText(", ".join( [f"{t.name} [{t.shape}]" for t in op.outputs]))
def load_data_in_list(list_wid, data_wid, data, *args): item = QListWidgetItem() item.data = data widget = data_wid(data, *args, list_wid) item.wid = widget item.setSizeHint(widget.sizeHint()) list_wid.addItem(item) list_wid.setItemWidget(item, widget)
def _formatQItem(self, qitem: QListWidgetItem) -> None: """Format the given :py:class:`QListWidgetItem` to reflect the state of the underlying item. This method may be extended by subclasses. """ qitem.setText(self._textForItem(qitem.data(Qt.UserRole))) if self._formater is not None: self._formater(qitem)
def template_changed(self, a_current: QtWidgets.QListWidgetItem): try: if a_current is not None: new_template_id = a_current.data(QtCore.Qt.UserRole) self.current_template = self.templates_db.get(new_template_id) assert self.current_template is not None, "database operation 'get' has failed!" self.fill_template_info_to_ui(self.current_template) except AssertionError as err: print(err)
def baudRateChanged(self, item: QtWidgets.QListWidgetItem): if item is None: return phase: CanPhase = None baudRateBps: int = None phase, baudRateBps = item.data(QtCore.Qt.UserRole) self.currentPhase = phase self.currentBaudRateBps = baudRateBps self.calculate()
def _onCurrentItemChanged(self, current: QListWidgetItem, _previous: QListWidgetItem) -> None: """React to the selection of an item in this list. """ entry = None if current is None else current.data(Qt.UserRole) if isinstance(entry, InstanceRegisterEntry): self.instanceSelected.emit(entry) elif isinstance(entry, ClassRegisterEntry): self.classSelected.emit(entry) # FIXME[bug]: TypeError
def handleBundleUpdate(self, _status, _data): self.__ui.lwBundleList.clear() self.__ui.leAssloudDir.setText(_status.rootdir) for bundle_name in _status.bundle: # 包列表 item_bundle = QListWidgetItem() item_bundle.setData(Qt.UserRole, bundle_name) # 使用setData给items添加对应的uuid,之后控制方便 item_bundle.setText(item_bundle.data(Qt.UserRole)) self.__ui.lwBundleList.addItem(item_bundle)
def onCurrentItemChanged(self, current: QtWidgets.QListWidgetItem, previous: QtWidgets.QListWidgetItem): option: SelectOption = current.data(Qt.UserRole) self.ui.descriptionTextEdit.setText(option.description) image = option.image if image and Path(image) in self._images: target = self._images[Path(image)] self.ui.imageLabel.setPixmap(QPixmap(target.as_posix())) else: self.ui.imageLabel.setPixmap(QPixmap())
def on_list_item_clicked(self, item: QListWidgetItem): mail = item.data(Qt.UserRole) subject = mail['subject'] sender = mail['sender'] receiver = mail['receiver'] date = mail['date'] content = mail['content'] preview_text = f"<h1>{subject}</h1><p>date: {date}</p><p>sender: {sender}</p>" \ f"<p>receiver: {receiver}</p>{content if content else '(empty content)'}" self.textBrowser.setText(preview_text)
def refresh_widget(self): self.email_list.clear() self.set_email_config_form() for record in get_user_email_conf(self.user_info['username']).get( 'records', []): item = QListWidgetItem(record['addr']) if record['is_default'] == 1: brush = QtGui.QBrush(QtGui.QColor(1, 203, 31)) brush.setStyle(QtCore.Qt.NoBrush) item.setForeground(brush) item.data = record self.email_list.addItem(item)
def display_info(self, item: QListWidgetItem): if len(self.song_list.selectedItems()) > 1: self.set_enable_all_field(False) self.clear_fields() else: file: osu_file = self.current_song_list[item.data(0x0100)] self.artistLineEdit.setText(file.artist) self.artistRomanisedLineEdit.setText(file.artist_unicode) self.songNameLineEdit.setText(file.title) self.songNameRomanisedLineEdit.setText(file.roman_title) self.difficultynameLineEdit.setText(file.version) self.mapperLineEdit.setText(file.creator) self.set_enable_all_field(True)
def baudRateListClicked(self, item: QtWidgets.QListWidgetItem): if item is None: return phase: CanPhase = None baudRateBps: int = None phase, baudRateBps = item.data(QtCore.Qt.UserRole) doCalc = False if phase != self.currentPhase: doCalc = True self.currentPhase = phase self.currentBaudRateBps = baudRateBps self.btParamLabel.setText( f'{self.BT_PARAM_LABEL} for {self.currentPhase.name} phase') if doCalc: self.calculate()
def on_nav_clicked(self, list_item: QListWidgetItem): data = list_item.data(Qt.UserRole) if data is None: return if data.id == 0: self.show_local_music_page() else: cur_id = data.id self.update_music_list(cur_id) self.stacked_view.setCurrentWidget(self.music_list_detail) self.set_musics_layout() # 加载歌单中的歌曲列表 self.show_musics_data() self.musics_table.setCurrentCell(0, 0)
def initUI(self): self.gridlayout = QGridLayout() self.gridlayout.setSpacing(10) self.fundlist = QListWidget(self) self.fundlist.setMinimumWidth(220) self.fundlist.setMaximumWidth(220) item1 = QListWidgetItem("item1") item1.data = 1 self.fundlist.addItem(item1) item2 = QListWidgetItem("item2") item2.data = 2 self.fundlist.addItem(item2) self.fundlist.itemClicked.connect(self.selectItem) self.gridlayout.addWidget(self.fundlist, 1, 0) self.figure = plt.figure() ''' self.p1=self.figure.add_subplot(1,1,1) self.p1.plot(np.linspace(0,12,300),np.sin(np.linspace(0,12,300))) self.p1.grid() ''' self.canvas = FigureCanvas(self.figure) self.gridlayout.addWidget(self.canvas, 1, 1) self.canvas.draw() self.setLayout(self.gridlayout)
def onNavigationClicked(self, item: QListWidgetItem): """ 当点击左侧 navigation 时, 显示对应页面 """ data = item.data(Qt.UserRole) if data is None: return if data.id == 0: self.show_local_music_page() else: cur_id = data.id self.updateMusicList(cur_id) self.stackedWidget_2.setCurrentWidget(self.music_list_detail) self.set_musics_layout() # 加载歌单中的歌曲列表 self.show_musics_data() self.musics.setCurrentCell(0, 0)
def _add_chart_info(self, filename, key, f=None, archive_source=None): assert key != -1 self.debugPrint("Adding: " + filename) if key in self.current_song_list: self.debugPrint("Chart already added.") return file = osu_file(filename, f, archive_source) if not file.init_error: self.current_song_list[key] = file else: self.debugPrint("Error adding chart " + filename + ": " + file.init_error) del self.current_song_path[key] return song_item = QListWidgetItem(os.path.basename(filename)) song_item.setData(0x0100, key) self.debugPrint(song_item.data(0x0100)) self.song_list.addItem(song_item)
def event_list_item_changed(self, item: QtWidgets.QListWidgetItem): if item is None: return item_data = item.data(QtCore.Qt.UserRole) if item_data is None: return if item_data[0] != "event": return _, date, event = item_data block_signals = self.calendar_widget.blockSignals(True) self.calendar_widget.setSelectedDate(QtCore.QDate(date)) self.calendar_widget.blockSignals(block_signals)
def initUI(self): self.gridlayout=QGridLayout() self.gridlayout.setSpacing(10) self.fundlist=QListWidget(self) self.fundlist.setMinimumWidth(240) self.fundlist.setMaximumWidth(240) items=self.fund.getitems() __it=iter(items) for item in __it : __item=QListWidgetItem("{} {}".format(item,items[item])) __item.data=item self.fundlist.addItem(__item) self.fundlist.itemClicked.connect(self.selectItem) self.gridlayout.addWidget(self.fundlist,1,0) self.figure=plt.figure() self.canvas=FigureCanvas(self.figure) self.gridlayout.addWidget(self.canvas,1,1) self.canvas.draw() self.setLayout(self.gridlayout)
def _formatListWidgetItem(self, item: QListWidgetItem) -> None: """Format a :py:class:`QListWidgetItem`. Arguments --------- item: QListWidgetItem The :py:class:`QListWidgetItem` to format. It is guaranteed that the associated data if of type :py:class:`ClassRegisterEntry`. """ entry = item.data(Qt.UserRole) if entry.initialized: color = self.colorInitialized elif entry.initializable: color = self.colorInitializable else: color = self.colorUninitializable if self._mode == 'class': item.setBackground(color) elif self._mode == 'instance': item.setBackground(color)
def on_section_current_item_changed(self, cur: QListWidgetItem, prev: QListWidgetItem): data = int(cur.data(Qt.UserRole)) self._stack.setCurrentIndex(data)