def for_color(color: str | QtGui.QColor) -> gui.Icon: if isinstance(color, str): color = gui.Color.from_text(color) if color.isValid(): bitmap = gui.Pixmap(16, 16) bitmap.fill(color) return gui.Icon(bitmap) else: return gui.Icon(_icon("mdi.card-outline"))
def __getstate__(self): icon = gui.Icon(self.windowIcon()) return dict(central_widget=self.centralWidget(), title=self.windowTitle(), is_maximized=self.isMaximized(), icon=icon if not icon.isNull() else None, size=(self.size().width(), self.size().height()))
def __getstate__(self): return dict(text=self.text(), tooltip=self.toolTip(), statustip=self.statusTip(), checkstate=self.get_checkstate(), icon=gui.Icon(self.icon()) if not self.icon().isNull() else None, data=self.data(QtCore.Qt.UserRole))
def __getstate__(self): return dict( text=self.text(), tooltip=self.toolTip(), statustip=self.statusTip(), icon=gui.Icon(self.icon()) if not self.icon().isNull() else None, data=self.data())
def test_icon(): icon = gui.Icon() icon.for_color("black") with open("data.pkl", "wb") as jar: pickle.dump(icon, jar) with open("data.pkl", "rb") as jar: icon = pickle.load(jar)
def get_style_icon(cls, icon: widgets.style.StandardPixmapStr) -> gui.Icon: style = cls.style() # icon_size = style.pixelMetric(QtWidgets.QStyle.PM_MessageBoxIconSize) if icon not in widgets.style.STANDARD_PIXMAP: raise InvalidParamError(icon, widgets.style.STANDARD_PIXMAP) icon = style.standardIcon(widgets.style.STANDARD_PIXMAP[icon]) return gui.Icon(icon)
def __getstate__(self): icon = gui.Icon(self.windowIcon()) return dict(layout=self.layout(), title=self.windowTitle(), is_maximized=self.isMaximized(), has_sizegrip=self.isSizeGripEnabled(), icon=icon if not icon.isNull() else None, size=(self.size().width(), self.size().height()))
def create_menu(self): act_exit = widgets.Action(gui.Icon("exit.png"), "&Exit", self) act_exit.setShortcut("Ctrl+Q") act_exit.setStatusTip("Exit application") act_exit.triggered.connect(self.close) act_open = widgets.Action(gui.Icon("open.png"), "&Open", self) act_open.setShortcut("Ctrl+O") act_open.setStatusTip("Open Markdown file") act_open.triggered.connect(self.open_new_file) self.statusBar() menubar = self.menuBar() menu_file = menubar.addMenu("&File") menu_file.addAction(act_open) menu_file.addAction(act_exit)
def create_menu(self): act_exit = widgets.Action(gui.Icon('exit.png'), '&Exit', self) act_exit.setShortcut('Ctrl+Q') act_exit.setStatusTip('Exit application') act_exit.triggered.connect(self.close) act_open = widgets.Action(gui.Icon('open.png'), '&Open', self) act_open.setShortcut('Ctrl+O') act_open.setStatusTip('Open Markdown file') act_open.triggered.connect(self.open_new_file) self.statusBar() menubar = self.menuBar() menu_file = menubar.addMenu('&File') menu_file.addAction(act_open) menu_file.addAction(act_exit)
def add(self, label: str, data=NoData, icon: types.IconType = None): if data is NoData: data = label if icon is not None: icon = iconprovider.get_icon(icon) self.addItem(gui.Icon(icon), label, userData=data) else: self.addItem(label, userData=data)
def for_color(cls, color_str: str): color = gui.Color.from_text(color_str) if color.isValid(): bitmap = gui.Pixmap(16, 16) bitmap.fill(color) icon = gui.Icon(bitmap) else: icon = qta.icon("mdi.card-outline") return icon
def __getstate__(self): return dict(object_name=self.id, text=self.text(), icon=gui.Icon(self.icon()) if not self.icon().isNull() else None, checkable=self.isCheckable(), checked=self.isChecked(), tooltip=self.toolTip(), statustip=self.statusTip(), enabled=self.isEnabled())
def add(self, label: str, data=NoData, icon=None): if data is NoData: data = label if icon is not None: if isinstance(icon, str): icon = qta.icon(icon) self.addItem(gui.Icon(icon), label, userData=data) else: self.addItem(label, userData=data)
def set_icon(self, icon: Union[QtGui.QIcon, str, None]): """set the icon for the action Args: icon: icon to use """ if not icon: icon = gui.Icon() elif isinstance(icon, str): icon = qta.icon(icon) self.setIcon(icon)
def set_icon(self, icon: Union[QtGui.QIcon, str, None]): """set the icon for the menu Args: icon: icon to use """ if not icon: icon = gui.Icon() elif isinstance(icon, str): icon = qta.icon(icon, color="lightgray") self.setWindowIcon(icon)
def __getstate__(self): children = list() for i, widget in enumerate(self.get_children()): dct = dict(widget=widget, icon=gui.Icon(self.itemIcon(i)), text=self.itemText(i), enabled=self.isItemEnabled(i), tooltip=self.itemToolTip(i)) children.append(dct) return dict(items=children, current_index=self.currentIndex())
def set_marker(self, item: str | int | widgets.Widget, color: types.ColorType = "red"): widget = self._get_widget(item) if widget == self._get_current_widget(): return template = self.icon_map[widget] px = template.pixmap(100, 100) with gui.Painter(px) as painter: dot = gui.Pixmap.create_dot(color) painter.drawPixmap(0, 0, dot) icon = gui.Icon(px) self.button_map[widget].set_icon(icon)
def show_message( self, title: str, message: str = "", icon: types.IconType = None, timeout: int = 10, ): if icon is None: ico = gui.Icon() if icon in MESSAGE_ICONS: ico = MESSAGE_ICONS[icon] else: ico = iconprovider.get_icon(icon) self.showMessage(title, message, ico, timeout * 1000)
def test_icon(): icon = gui.Icon() icon.for_color("black") with open("data.pkl", "wb") as jar: pickle.dump(icon, jar) with open("data.pkl", "rb") as jar: icon = pickle.load(jar) with pytest.raises(InvalidParamError): icon.get_available_sizes(mode="test") with pytest.raises(InvalidParamError): icon.get_available_sizes(state="test") icon.get_available_sizes() icon.add_pixmap(b"a") icon.get_actual_size((256, 256))
def get_icon( icon: types.IconType, color: str | None = None, as_qicon: bool = False ) -> QtGui.QIcon: """Get icon with given color. Qtawesome already caches icons, but since we construct our own subclassed icon, we cache, too. """ if isinstance(icon, QtGui.QIcon): return icon if as_qicon else gui.Icon(icon) if isinstance(icon, os.PathLike): icon = os.fspath(icon) if (icon, color, as_qicon) in icon_cache: return icon_cache[(icon, color, as_qicon)] if isinstance(icon, str) and icon.startswith("mdi."): if color is not None: new = _icon(icon, color=color) else: new = _icon(icon) else: new = QtGui.QIcon(icon) # type: ignore icon = new if as_qicon else gui.Icon(new) icon_cache[(icon, color, as_qicon)] = icon return icon
def mimetype_icon(path, fallback=None): """Try to create an icon from theme using the file mimetype. E.g.:: return self.mimetype_icon( path, fallback=':/icons/text-x-python.png') :param path: file path for which the icon must be created :param fallback: fallback icon path (qrc or file system) :returns: QIcon or None if the file mimetype icon could not be found. """ mime = mimetypes.guess_type(path)[0] if mime: icon = mime.replace("/", "-") # if system.WINDOWS: # return icons.file() if gui.Icon.hasThemeIcon(icon): icon = gui.Icon.fromTheme(icon) if not icon.isNull(): return icon if fallback: return gui.Icon(fallback) return gui.Icon.fromTheme("text-x-generic")
def get_icon(self, column: int = 0) -> gui.Icon | None: icon = self.icon(column) if icon.isNull(): return None return gui.Icon(icon)
def get_icon(self) -> gui.Icon | None: icon = self.icon() if icon.isNull(): return None return gui.Icon(icon)
def get_icon(self, typ: IconTypeStr | QtCore.QFileInfo | types.PathType) -> gui.Icon: if isinstance(typ, (os.PathLike, QtCore.QFileInfo)): param = core.FileInfo(typ) else: param = ICON_TYPE[typ] return gui.Icon(self.icon(param))
def item_icon(self, index: int) -> gui.Icon | None: icon = self.itemIcon(index) if icon.isNull(): return None return gui.Icon(icon)
def get_icon(icon): if not icon: icon = gui.Icon() elif isinstance(icon, str): icon = qta.icon(icon) return icon
def item_icon(self, index: int): return gui.Icon(self.itemIcon(index))
def test_icon(): color = gui.Icon()
def tab_icon(self, i): return gui.Icon(self.tabIcon(i))
def tab_icon(self, i: int) -> gui.Icon | None: icon = self.tabIcon(i) if icon.isNull(): return None return gui.Icon(icon)