initial fluent-widgets ui

This commit is contained in:
2025-08-14 18:45:16 +08:00
parent 746e83ab23
commit 4c66886257
1198 changed files with 805339 additions and 0 deletions

View File

@ -0,0 +1,53 @@
# coding:utf-8
from typing import Union
from PySide6.QtCore import Property
from PySide6.QtGui import QIcon, QPainter
from PySide6.QtWidgets import QWidget
from ...common.icon import FluentIconBase, drawIcon, toQIcon
from ...common.overload import singledispatchmethod
class IconWidget(QWidget):
""" Icon widget
Constructors
------------
* IconWidget(`parent`: QWidget = None)
* IconWidget(`icon`: QIcon | str | FluentIconBase, `parent`: QWidget = None)
"""
@singledispatchmethod
def __init__(self, parent=None):
super().__init__(parent)
self.setIcon(QIcon())
@__init__.register
def _(self, icon: FluentIconBase, parent: QWidget = None):
self.__init__(parent)
self.setIcon(icon)
@__init__.register
def _(self, icon: QIcon, parent: QWidget = None):
self.__init__(parent)
self.setIcon(icon)
@__init__.register
def _(self, icon: str, parent: QWidget = None):
self.__init__(parent)
self.setIcon(icon)
def getIcon(self):
return toQIcon(self._icon)
def setIcon(self, icon: Union[str, QIcon, FluentIconBase]):
self._icon = icon
self.update()
def paintEvent(self, e):
painter = QPainter(self)
painter.setRenderHints(QPainter.Antialiasing | QPainter.SmoothPixmapTransform)
drawIcon(self._icon, painter, self.rect())
icon = Property(QIcon, getIcon, setIcon)