예제 #1
0
파일: __init__.py 프로젝트: phil65/PrettyQt
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"))
예제 #2
0
 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()))
예제 #3
0
 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))
예제 #4
0
 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())
예제 #5
0
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)
예제 #6
0
 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)
예제 #7
0
 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()))
예제 #8
0
    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)
예제 #9
0
    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)
예제 #10
0
파일: combobox.py 프로젝트: phil65/PrettyQt
 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)
예제 #11
0
파일: icon.py 프로젝트: timfl94/PrettyQt
 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
예제 #12
0
 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())
예제 #13
0
 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)
예제 #14
0
    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)
예제 #15
0
    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)
예제 #16
0
파일: toolbox.py 프로젝트: timfl94/PrettyQt
 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())
예제 #17
0
 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)
예제 #18
0
 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)
예제 #19
0
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))
예제 #20
0
파일: __init__.py 프로젝트: phil65/PrettyQt
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
예제 #21
0
    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")
예제 #22
0
 def get_icon(self, column: int = 0) -> gui.Icon | None:
     icon = self.icon(column)
     if icon.isNull():
         return None
     return gui.Icon(icon)
예제 #23
0
파일: action.py 프로젝트: phil65/PrettyQt
 def get_icon(self) -> gui.Icon | None:
     icon = self.icon()
     if icon.isNull():
         return None
     return gui.Icon(icon)
예제 #24
0
 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))
예제 #25
0
파일: combobox.py 프로젝트: phil65/PrettyQt
 def item_icon(self, index: int) -> gui.Icon | None:
     icon = self.itemIcon(index)
     if icon.isNull():
         return None
     return gui.Icon(icon)
예제 #26
0
def get_icon(icon):
    if not icon:
        icon = gui.Icon()
    elif isinstance(icon, str):
        icon = qta.icon(icon)
    return icon
예제 #27
0
 def item_icon(self, index: int):
     return gui.Icon(self.itemIcon(index))
예제 #28
0
def test_icon():
    color = gui.Icon()
예제 #29
0
 def tab_icon(self, i):
     return gui.Icon(self.tabIcon(i))
예제 #30
0
 def tab_icon(self, i: int) -> gui.Icon | None:
     icon = self.tabIcon(i)
     if icon.isNull():
         return None
     return gui.Icon(icon)