def __init__(self, owner): super(self.__class__, self).__init__(owner) Ui_User.__init__(self) self.setupUi(self) self.owner = weakref.ref(owner) self.setWindowTitle("哔咔漫画") pix = QtGui.QPixmap() pix.loadFromData(resources.DataMgr.GetData("placeholder_avatar")) pix.scaled(self.icon.size(), Qt.KeepAspectRatio) self.icon.setScaledContents(True) self.icon.setPixmap(pix) self.pictureData = None self.icon.installEventFilter(self) self.listWidget.currentRowChanged.connect(self.Switch) self.listWidget.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.listWidget.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.listWidget.setFrameShape(self.listWidget.NoFrame) for name in ["主页", "搜索", "分类", "排行", "收藏", "历史记录", "下载", "留言板", "聊天室"]: item = QListWidgetItem(name, self.listWidget) item.setSizeHint(QSize(16777215, 60)) item.setTextAlignment(Qt.AlignCenter) self.stackedWidget.addWidget(self.owner().indexForm) self.stackedWidget.addWidget(self.owner().searchForm) self.stackedWidget.addWidget(self.owner().categoryForm) self.stackedWidget.addWidget(self.owner().rankForm) self.stackedWidget.addWidget(self.owner().favoriteForm) self.stackedWidget.addWidget(self.owner().historyForm) self.stackedWidget.addWidget(self.owner().downloadForm) self.stackedWidget.addWidget(self.owner().leaveMsgForm) self.stackedWidget.addWidget(self.owner().chatForm)
def add_request_weiget2(self, t1='', t2=''): item = QListWidgetItem() item.setSizeHint(QSize(10, 40)) self.li2.addItem(item) w = QWidget() layout = QHBoxLayout() e1 = QLineEdit(w) e1.setText(t1) sizePolicy2 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) sizePolicy2.setHorizontalStretch(10) sizePolicy2.setVerticalStretch(0) # sizePolicy1.setHeightForWidth(self.comboBox.sizePolicy().hasHeightForWidth()) e1.setSizePolicy(sizePolicy2) e2 = QLineEdit(w) e2.setText(t2) sizePolicy3 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) sizePolicy3.setHorizontalStretch(10) sizePolicy3.setVerticalStretch(0) # sizePolicy1.setHeightForWidth(self.comboBox.sizePolicy().hasHeightForWidth()) e2.setSizePolicy(sizePolicy3) layout.addWidget(e1) layout.addWidget(e2) w.setLayout(layout) self.li2.setItemWidget(item, w)
def listAvailableMethods(self): """ Looks for MacroMethods's usable classes and list those on MethodList. Only runs once per program execution. """ def iconSet(name): temp = QtTools.ICON_LOCATION + QtTools.ICON_ASSIGN.setdefault( name, "default") return Toolset.PathData.relative(temp) def setItems(item_list): """ Coroutine to generate respective items from given method lists. """ for name in item_list: item = QtTools.MethodItemWidget(iconSet(name), name) yield item self.methodList.clear() for i in setItems(Elements.__all__): list_item = QListWidgetItem(self.methodList) list_item.setSizeHint(i.sizeHint()) self.methodList.addItem(list_item) self.methodList.setItemWidget(list_item, i) self.methodList.setCurrentRow(0)
def AddUserItem(self, commnetId, commentsCount, likesCount, content, name, createdTime, floor, url="", path="", originalName="", title="", level=1): index = self.count() iwidget = QtComment(self) iwidget.id = commnetId iwidget.commentLabel.setText(content) iwidget.nameLabel.setText(name) iwidget.numLabel.setText("({})".format(commentsCount)) iwidget.starLabel.setText("({})".format(likesCount)) iwidget.levelLabel.setText(" LV" + str(level) + " ") iwidget.titleLabel.setText(" " + title + " ") if createdTime: timeArray, day = ToolUtil.GetDateStr(createdTime) if day >= 1: iwidget.dateLabel.setText("{}天前".format(str(day))) else: strTime = "{}:{}:{}".format(timeArray.tm_hour, timeArray.tm_min, timeArray.tm_sec) iwidget.dateLabel.setText("{}".format(strTime)) iwidget.indexLabel.setText("{}楼".format(str(floor))) item = QListWidgetItem(self) item.setSizeHint(iwidget.sizeHint()) self.setItemWidget(item, iwidget) if url and config.IsLoadingPicture: QtTask().AddDownloadTask(url, path, None, self.LoadingPictureComplete, True, index, True, self.GetName()) pass
def _add_attr(self, existing_frame=None): item = QListWidgetItem() self.list_widget.addItem(item) frame = existing_frame if existing_frame is not None else FieldAttrFrame( ) item.setSizeHint(frame.sizeHint()) self.list_widget.setItemWidget(item, frame)
def add_player_team2(self): if not self.check_for_players(): QMessageBox.warning(self.window, "League Night", "There are currently no Players", QMessageBox.Ok, QMessageBox.NoButton) return team2List = self.window.team2List playerPoolList = self.window.playerPoolList players = playerPoolList.selectedItems() for index in players: player = playerPoolList.itemWidget(index) if self.check_player_exists_on_team(self.window.team2List, player.summoner): QMessageBox.warning(self.window, "League Night", "Player is already on this Team", QMessageBox.Ok, QMessageBox.NoButton) elif self.check_player_exists_on_team(self.window.team1List, player.summoner): QMessageBox.warning(self.window, "League Night", "Player is already on the other Team", QMessageBox.Ok, QMessageBox.NoButton) else: item = QListWidgetItem(team2List) team2Player = self.add_player_to_team(team2List, player.summoner) team2Player.playerLabel.setText(player.summoner.name) item.setSizeHint(team2Player.sizeHint()) team2List.addItem(item) team2List.setItemWidget(item, team2Player)
def _create_c_list_item_widget(self, colleague): widget = QWidget(parent=self._colleagues_list) widget.colleague = colleague main_layout = QHBoxLayout(widget) main_layout.setSpacing(2) icon_label = QLabel(widget) icon_label.setPixmap( QIcon(":images/account.svg").pixmap( QSize(self.COLLEAGUES_LIST_WIDGET_HEIGHT - 17, self.COLLEAGUES_LIST_WIDGET_HEIGHT - 17))) main_layout.addWidget(icon_label) vertical_layout = QVBoxLayout() main_layout.addLayout(vertical_layout) text_label = QLabel(widget) widget.text_label = text_label text_label.setFont(QFont('Noto Sans', 10 * self._dp)) text_label.setAlignment(Qt.AlignTop | Qt.AlignLeft) text_label.setText(colleague.get_mail_text()) vertical_layout.addWidget(text_label) status_label = QLabel(widget) widget.status_label = status_label status_label.setFont(QFont('Noto Sans', 10 * self._dp)) status_label.setAlignment(Qt.AlignTop | Qt.AlignLeft) status_label.setText(colleague.get_status_text()) vertical_layout.addWidget(status_label) main_layout.addStretch() access_label = QLabel(widget) widget.access_label = access_label access_label.setFont(QFont('Noto Sans', 10 * self._dp)) access_label.setAlignment(Qt.AlignCenter | Qt.AlignLeft) access_label.setText(colleague.get_access_text()) main_layout.addWidget(access_label) def clicked(event, control): self._show_menu(widget.colleague, control.mapToGlobal(event.pos())) widget.mouseReleaseEvent = lambda e: clicked(e, widget) widget.text_label.mouseReleaseEvent = lambda e: clicked( e, widget.text_label) widget.status_label.mouseReleaseEvent = lambda e: clicked( e, widget.status_label) widget.access_label.mouseReleaseEvent = lambda e: clicked( e, widget.access_label) item = QListWidgetItem() item.setFlags(item.flags() & ~Qt.ItemIsSelectable) item.setSizeHint( QSize(self._colleagues_list.width(), self.COLLEAGUES_LIST_WIDGET_HEIGHT)) self._colleagues_list.addItem(item) self._items.append(widget) self._colleagues_list.setItemWidget(item, widget)
def add_download(self, link: str): list_item = QListWidgetItem() self.ui.listWidget.addItem(list_item) download_item = ItemWidget(list_item) # download_item.on_complete_signal.connect(self.complete) list_item.setSizeHint(download_item.sizeHint()) self.ui.listWidget.setItemWidget(list_item, download_item) download_item.start_download(link)
def AddItem(self, name): item = QListWidgetItem(name) item.setTextAlignment(Qt.AlignCenter) # item.setBackground(QColor(87, 195, 194)) item.setBackground(QColor(0, 0, 0, 0)) item.setSizeHint(QSize(90, 30)) item.setFlags(item.flags() & (~Qt.ItemIsSelectable)) self.addItem(item)
def AddBookItem(self, _id, title, info="", url="", path="", param="", originalName=""): index = self.count() iwidget = ItemWidget(_id, title, str(index+1), info, param, self) item = QListWidgetItem(self) item.setSizeHint(iwidget.sizeHint()) self.setItemWidget(item, iwidget) iwidget.picIcon.setText("图片加载中...") if url and path and config.IsLoadingPicture: QtTask().AddDownloadTask(url, path, None, self.LoadingPictureComplete, True, index, True, self.GetName()) pass
def append_to_list(self, beans: list): for bean in beans: if self.beanType == Types.FLOAT_DEC: line = QFLine(bean) elif self.beanType == Types.HAM_DEC: line = QHLine(bean) else: line = QLine(bean) item = QListWidgetItem(self.listWidget) item.setSizeHint(line.minimumSizeHint()) self.listWidget.addItem(item) self.listWidget.setItemWidget(item, line)
def add_field(self) -> FieldWidget: item = QListWidgetItem() field = FieldWidget( self.possible_fields, self.fieldsListWidget, self.instrument ) field.something_clicked.connect(partial(self.select_field, item)) self.nx_class_changed.connect(field.field_name_edit.update_possible_fields) item.setSizeHint(field.sizeHint()) self.fieldsListWidget.addItem(item) self.fieldsListWidget.setItemWidget(item, field) return field
def layers_update(self, layers): self.listWidget.clear() for layer in layers: item = QListWidgetItem(self.listWidget) self.listWidget.addItem(item) delegate = LayerItemDelegate(layer, self.plot_worker) item.setSizeHint(delegate.size()) delegate.set_name(layer.key) if hasattr(layer, '_colour'): delegate.set_colour(layer._colour) if hasattr(layer, '_osm_tag'): delegate.set_data_tag(layer._osm_tag) self.listWidget.setItemWidget(item, delegate)
def UpdateEpsInfo(self): self.epsListWidget.clear() info = BookMgr().books.get(self.bookId) if not info: return downloadEpsId = self.owner().downloadForm.GetDownloadEpsId(self.bookId) for index, epsInfo in enumerate(info.eps): label = QLabel(epsInfo.title) label.setContentsMargins(20, 10, 20, 10) item = QListWidgetItem(self.epsListWidget) item.setSizeHint(label.sizeHint()) if index in downloadEpsId: item.setBackground(self.greed) else: item.setBackground(self.white) self.epsListWidget.setItemWidget(item, label)
def _add_file_to_file_list(self, index, file_list, items_dict, obj_id, rel_path, created_time, was_updated, is_deleted, transfered, size=0, state=None, is_file=True): item = file_list.item(index) if item: item.setData(Qt.UserRole, [ rel_path, created_time, size, was_updated, is_deleted, transfered, state, is_file, obj_id ]) self._update_file_list_item_widget(file_list, item) items_dict[obj_id].append(item) return item = QListWidgetItem() item.setFlags(item.flags() & ~Qt.ItemIsSelectable) item.setSizeHint(QSize(file_list.width(), self.FILE_LIST_ITEM_SIZE)) item.setData(Qt.UserRole, [ rel_path, created_time, size, was_updated, is_deleted, transfered, state, is_file, obj_id ]) file_list.addItem(item) rect = file_list.viewport().contentsRect() top = file_list.indexAt(rect.topLeft()) if top.isValid(): bottom = file_list.indexAt(rect.bottomLeft()) if not bottom.isValid(): bottom = file_list.model().index(file_list.count() - 1) if top.row() <= file_list.row(item) <= bottom.row() + 1: widget = self._create_file_list_item_widget( file_list, [ rel_path, created_time, size, was_updated, is_deleted, transfered, state, is_file, obj_id ]) file_list.setItemWidget(item, widget) if item not in items_dict[obj_id]: items_dict[obj_id].append(item)
def create_item(self, name, icon): """Create a standard list widget item, for option panel. Args: name: Name of option button icon: Icon name of option button Returns: item: created option button """ item = QListWidgetItem(self) item.setText(name) item.setIcon(QIcon(icon)) item.setStatusTip(name) item.setSizeHint(QSize(75, 70)) item.setTextAlignment(Qt.AlignCenter) item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled) return item
def item_clicked(self, item): self.menu_level += 1 item_text = item.text() if self.menu_level < 2: self.item_list.clear() item = QListWidgetItem("< Back") item.setSizeHint(QSize(item.sizeHint().width(), 50)) self.item_list.addItem(item) for i in range(10): item = QListWidgetItem("Sub menu {} ({})".format(i, item_text)) item.setSizeHint(QSize(item.sizeHint().width(), 50)) self.item_list.addItem(item) elif "Back" in item_text: self.item_list.clear() self.menu_level = 0 self.fill_main_item_list()
def _add_file_to_file_list(self, index, rel_path, created_time, was_updated, icon_info): item = self._ui.file_list.item(index) if not item: item = QListWidgetItem() item.setFlags(item.flags() & ~Qt.ItemIsSelectable) item.setSizeHint(QSize( self.FILE_LIST_ITEM_SIZE, self.FILE_LIST_ITEM_SIZE)) self._ui.file_list.insertItem(index, item) widget = self._ui.file_list.itemWidget(item) if not widget: widget = self._create_file_list_item_widget( rel_path, created_time, was_updated, icon_info) self._ui.file_list.setItemWidget(item, widget) else: self._update_file_list_item_widget( widget, rel_path, created_time, was_updated, icon_info) self._files[FilePath(rel_path)] = icon_info
def add_player(self): summoner = self.get_summoner(self.window.usernameEdit.text()) if summoner is None: QMessageBox.warning(self.window, "League Night", "Invalid Summoner Name", QMessageBox.Ok, QMessageBox.NoButton) return item = QListWidgetItem(self.window.playerPoolList) playerWidget = self.create_player(self.window.playerPoolList, summoner) playerWidget.playerLabel.setText(summoner.name) playerWidget.pointLabel.setText(str(summoner.points)) item.setSizeHint(playerWidget.sizeHint()) self.window.playerPoolList.addItem(item) self.window.playerPoolList.setItemWidget(item, playerWidget) self.window.usernameEdit.setText("") self.window.addPlayerButton.setEnabled(False)
def UpdateEpsData(self): self.epsListWidget.clear() info = BookMgr().books.get(self.bookId) if not info: return self.startRead.setEnabled(True) downloadIds = self.owner().downloadForm.GetDownloadCompleteEpsId( self.bookId) for index, epsInfo in enumerate(info.eps): label = QLabel(epsInfo.title) label.setContentsMargins(20, 10, 20, 10) item = QListWidgetItem(self.epsListWidget) if index in downloadIds: item.setBackground(QColor(18, 161, 130)) else: item.setBackground(QColor(0, 0, 0, 0)) item.setSizeHint(label.sizeHint()) self.epsListWidget.setItemWidget(item, label) self.tabWidget.setTabText(0, "章节({})".format(str(len(info.eps)))) return
def AddToListWidget(tgt, item_list_widget, index=None): """ Adds macro object to given QItemListWidget. :param index: if given, tries to insert item in given index. :param tgt: macro object to Add :param item_list_widget: QItemListWidget """ LoggingEmitter.debug(f"Add: {type(tgt).__name__} '{tgt.name}'") item = GenerateWidget(tgt) list_item = QListWidgetItem(item_list_widget) list_item.setSizeHint(item.sizeHint()) if index is not None: item_list_widget.insertItem(index, list_item) else: item_list_widget.addItem(list_item) item_list_widget.setItemWidget(list_item, item)
def build_adminlistwidget(): list_widget = QListWidget() list_widget.items = [] users = [ ["admin", "admin"], ["admin1", "admin1"], ["admin2", "admin2"], ["admin3", "admin3"], ["admin4", "admin4"], ["admin5", "admin5"], ] for username, password in users: item = make_adminlist_item(username) list_widget.items.append(item) last_item_indice = len(list_widget.items) - 1 list_widget_item = QListWidgetItem(list_widget) list_widget_item.setSizeHint( list_widget.items[last_item_indice].sizeHint()) list_widget.addItem(list_widget_item) list_widget.setItemWidget(list_widget_item, list_widget.items[last_item_indice]) return list_widget pass
def create_pixel_mapping_list(self, n_items: int, text: str): """ Creates a list of pixel mapping widgets. :param n_items: The number of widgets to create. :param text: The label to be displayed next to the line edit. This is either faces or cylinders. """ self.reset_pixel_mapping_list() for i in range(n_items): pixel_mapping_widget = PixelMappingWidget( self.pixel_mapping_list_widget, i, text) pixel_mapping_widget.pixelIDLineEdit.textEdited.connect( self.update_pixel_mapping_validity) # Make sure the list item is as large as the widget list_item = QListWidgetItem() list_item.setSizeHint(pixel_mapping_widget.sizeHint()) self.pixel_mapping_list_widget.addItem(list_item) self.pixel_mapping_list_widget.setItemWidget( list_item, pixel_mapping_widget) # Keep the PixelMappingWidget so that its ID can be retrieved easily when making a PixelMapping object. self.pixel_mapping_widgets.append(pixel_mapping_widget)
def addTemplate(self, template): item = QListWidgetItem() view = Item(template, self.subject) item.setSizeHint(view.sizeHint()) self.addItem(item) self.setItemWidget(item, view)
def fill_main_item_list(self): for i in range(10): item = QListWidgetItem("Menu {}".format(i)) item.setSizeHint(QSize(item.sizeHint().width(), 50)) self.item_list.addItem(item)