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,96 @@
# coding:utf-8
import sys
from PySide6.QtCore import Qt, QSize, QPoint
from PySide6.QtWidgets import QApplication, QWidget, QHBoxLayout, QVBoxLayout
from qfluentwidgets import (InfoBadge, IconInfoBadge, setTheme, Theme, DotInfoBadge, ToolButton,
InfoBadgePosition, InfoBadgeManager)
from qfluentwidgets import FluentIcon as FIF
@InfoBadgeManager.register('Custom')
class CustomInfoBadgeManager(InfoBadgeManager):
""" Custom info badge manager """
def position(self):
pos = self.target.geometry().center()
x = pos.x() - self.badge.width() // 2
y = self.target.y() - self.badge.height() // 2
return QPoint(x, y)
class Demo(QWidget):
def __init__(self):
super().__init__()
# setTheme(Theme.DARK)
self.vBoxLayout = QVBoxLayout(self)
# info badge
self.hBoxLayout1 = QHBoxLayout()
self.hBoxLayout1.setSpacing(20)
self.hBoxLayout1.setSizeConstraint(QHBoxLayout.SetMinimumSize)
self.hBoxLayout1.addStretch(1)
self.hBoxLayout1.addWidget(InfoBadge.info(1))
self.hBoxLayout1.addWidget(InfoBadge.success(10))
self.hBoxLayout1.addWidget(InfoBadge.attension(100))
self.hBoxLayout1.addWidget(InfoBadge.warning(1000))
self.hBoxLayout1.addWidget(InfoBadge.error(10000))
self.hBoxLayout1.addWidget(InfoBadge.custom('1w+', '#005fb8', '#60cdff'))
self.hBoxLayout1.addStretch(1)
self.vBoxLayout.addLayout(self.hBoxLayout1)
# dot info badge
self.hBoxLayout2 = QHBoxLayout()
self.hBoxLayout2.setSpacing(20)
self.hBoxLayout2.setSizeConstraint(QHBoxLayout.SetMinimumSize)
self.hBoxLayout2.addStretch(1)
self.hBoxLayout2.addWidget(DotInfoBadge.info())
self.hBoxLayout2.addWidget(DotInfoBadge.success())
self.hBoxLayout2.addWidget(DotInfoBadge.attension())
self.hBoxLayout2.addWidget(DotInfoBadge.warning())
self.hBoxLayout2.addWidget(DotInfoBadge.error())
self.hBoxLayout2.addWidget(DotInfoBadge.custom('#005fb8', '#60cdff'))
self.hBoxLayout2.addStretch(1)
self.vBoxLayout.addLayout(self.hBoxLayout2)
# icon info badge
self.hBoxLayout3 = QHBoxLayout()
self.hBoxLayout3.setSpacing(20)
self.hBoxLayout3.setSizeConstraint(QHBoxLayout.SetMinimumSize)
self.hBoxLayout3.addStretch(1)
self.hBoxLayout3.addWidget(IconInfoBadge.info(FIF.ACCEPT_MEDIUM))
self.hBoxLayout3.addWidget(IconInfoBadge.success(FIF.ACCEPT_MEDIUM))
self.hBoxLayout3.addWidget(IconInfoBadge.attension(FIF.ACCEPT_MEDIUM))
self.hBoxLayout3.addWidget(IconInfoBadge.warning(FIF.CANCEL_MEDIUM))
self.hBoxLayout3.addWidget(IconInfoBadge.error(FIF.CANCEL_MEDIUM))
badge = IconInfoBadge.custom(FIF.RINGER, '#005fb8', '#60cdff')
badge.setFixedSize(32, 32)
badge.setIconSize(QSize(16, 16))
self.hBoxLayout3.addWidget(badge)
self.hBoxLayout3.addStretch(1)
self.vBoxLayout.addLayout(self.hBoxLayout3)
# Using an InfoBadge in another control
self.button = ToolButton(FIF.BASKETBALL, self)
self.vBoxLayout.addWidget(self.button, 0, Qt.AlignHCenter)
InfoBadge.success(1, self, target=self.button, position=InfoBadgePosition.TOP_RIGHT)
# NOTE: Use custom info badge manager
# InfoBadge.success(1, self, target=self.button, position='Custom')
self.resize(450, 400)
if __name__ == '__main__':
app = QApplication(sys.argv)
w = Demo()
w.show()
app.exec()