Files
KKAFIO/app/components/navigation_logo.py
2024-09-24 18:09:48 +01:00

37 lines
1.2 KiB
Python

# coding:utf-8
from PySide6.QtCore import Qt, QSize
from PySide6.QtGui import QPixmap
from PySide6.QtWidgets import QLabel, QVBoxLayout
from qfluentwidgets import AvatarWidget
from qfluentwidgets.components.navigation import NavigationWidget
class NavigationLogoWidget(NavigationWidget):
""" Navigation widget with a logo """
def __init__(self, logoPath: str, radius: int = 100, parent=None):
super().__init__(isSelectable=False, parent=parent)
self.logoPath = logoPath
self.radius = radius
self.initUI()
def initUI(self):
layout = QVBoxLayout()
layout.setContentsMargins(0, 0, 0, 0)
self.avatar = AvatarWidget(self.logoPath)
self.avatar.setRadius(self.radius)
layout.addWidget(self.avatar, 0, Qt.AlignCenter)
self.setLayout(layout)
def setCompacted(self, isCompacted: bool):
""" set whether the widget is compacted """
if isCompacted == self.isCompacted:
return
self.isCompacted = isCompacted
if isCompacted:
self.setFixedSize(40, 36)
else:
self.setFixedSize(self.avatar.size())
self.update()