90 lines
3.1 KiB
Python
90 lines
3.1 KiB
Python
# coding:utf-8
|
|
import sys
|
|
|
|
from PyQt5.QtCore import Qt, QUrl
|
|
from PyQt5.QtGui import QIcon, QDesktopServices
|
|
from PyQt5.QtWidgets import QApplication, QFrame, QHBoxLayout
|
|
from qfluentwidgets import (NavigationItemPosition, MessageBox, setTheme, Theme, MSFluentWindow,
|
|
NavigationAvatarWidget, qrouter, SubtitleLabel, setFont)
|
|
from qfluentwidgets import FluentIcon as FIF
|
|
|
|
|
|
class Widget(QFrame):
|
|
|
|
def __init__(self, text: str, parent=None):
|
|
super().__init__(parent=parent)
|
|
self.label = SubtitleLabel(text, self)
|
|
self.hBoxLayout = QHBoxLayout(self)
|
|
|
|
setFont(self.label, 24)
|
|
self.label.setAlignment(Qt.AlignCenter)
|
|
self.hBoxLayout.addWidget(self.label, 1, Qt.AlignCenter)
|
|
self.setObjectName(text.replace(' ', '-'))
|
|
|
|
|
|
|
|
class Window(MSFluentWindow):
|
|
|
|
def __init__(self):
|
|
super().__init__()
|
|
|
|
# create sub interface
|
|
self.homeInterface = Widget('Home Interface', self)
|
|
self.appInterface = Widget('Application Interface', self)
|
|
self.videoInterface = Widget('Video Interface', self)
|
|
self.libraryInterface = Widget('library Interface', self)
|
|
|
|
self.initNavigation()
|
|
self.initWindow()
|
|
|
|
def initNavigation(self):
|
|
self.addSubInterface(self.homeInterface, FIF.HOME, '主页', FIF.HOME_FILL)
|
|
self.addSubInterface(self.appInterface, FIF.APPLICATION, '应用')
|
|
self.addSubInterface(self.videoInterface, FIF.VIDEO, '视频')
|
|
|
|
self.addSubInterface(self.libraryInterface, FIF.BOOK_SHELF, '库', FIF.LIBRARY_FILL, NavigationItemPosition.BOTTOM)
|
|
self.navigationInterface.addItem(
|
|
routeKey='Help',
|
|
icon=FIF.HELP,
|
|
text='帮助',
|
|
onClick=self.showMessageBox,
|
|
selectable=False,
|
|
position=NavigationItemPosition.BOTTOM,
|
|
)
|
|
|
|
self.navigationInterface.setCurrentItem(self.homeInterface.objectName())
|
|
|
|
def initWindow(self):
|
|
self.resize(900, 700)
|
|
self.setWindowIcon(QIcon(':/qfluentwidgets/images/logo.png'))
|
|
self.setWindowTitle('PyQt-Fluent-Widgets')
|
|
|
|
desktop = QApplication.desktop().availableGeometry()
|
|
w, h = desktop.width(), desktop.height()
|
|
self.move(w//2 - self.width()//2, h//2 - self.height()//2)
|
|
|
|
def showMessageBox(self):
|
|
w = MessageBox(
|
|
'支持作者🥰',
|
|
'个人开发不易,如果这个项目帮助到了您,可以考虑请作者喝一瓶快乐水🥤。您的支持就是作者开发和维护项目的动力🚀',
|
|
self
|
|
)
|
|
w.yesButton.setText('来啦老弟')
|
|
w.cancelButton.setText('下次一定')
|
|
|
|
if w.exec():
|
|
QDesktopServices.openUrl(QUrl("https://afdian.net/a/zhiyiYo"))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
QApplication.setHighDpiScaleFactorRoundingPolicy(Qt.HighDpiScaleFactorRoundingPolicy.PassThrough)
|
|
QApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
|
|
QApplication.setAttribute(Qt.AA_UseHighDpiPixmaps)
|
|
|
|
# setTheme(Theme.DARK)
|
|
|
|
app = QApplication(sys.argv)
|
|
w = Window()
|
|
w.show()
|
|
app.exec_()
|