116 lines
3.7 KiB
Python
116 lines
3.7 KiB
Python
|
|
# coding:utf-8
|
|||
|
|
import sys
|
|||
|
|
from PySide6.QtCore import Qt
|
|||
|
|
from PySide6.QtGui import QIcon, QAction
|
|||
|
|
from PySide6.QtWidgets import QApplication, QSystemTrayIcon
|
|||
|
|
from qfluentwidgets import MessageBox, setTheme, Theme, ImageLabel, Action, MenuAnimationType, MenuItemDelegate, CheckableMenu, MenuIndicatorType
|
|||
|
|
from qfluentwidgets import FluentIcon as FIF
|
|||
|
|
from qfluentwidgets.components.material import AcrylicMenu, AcrylicSystemTrayMenu, AcrylicCheckableMenu
|
|||
|
|
|
|||
|
|
|
|||
|
|
class SystemTrayIcon(QSystemTrayIcon):
|
|||
|
|
|
|||
|
|
def __init__(self, parent=None):
|
|||
|
|
super().__init__(parent=parent)
|
|||
|
|
self.setIcon(parent.windowIcon())
|
|||
|
|
self.setToolTip('硝子酱一级棒卡哇伊🥰')
|
|||
|
|
|
|||
|
|
self.menu = AcrylicSystemTrayMenu(parent=parent)
|
|||
|
|
self.menu.addActions([
|
|||
|
|
Action('🎤 唱'),
|
|||
|
|
Action('🕺 跳'),
|
|||
|
|
Action('🤘🏼 RAP'),
|
|||
|
|
Action('🎶 Music'),
|
|||
|
|
Action('🏀 篮球', triggered=self.ikun),
|
|||
|
|
])
|
|||
|
|
self.setContextMenu(self.menu)
|
|||
|
|
|
|||
|
|
def ikun(self):
|
|||
|
|
content = """巅峰产生虚伪的拥护,黄昏见证真正的使徒 🏀
|
|||
|
|
|
|||
|
|
⠀⠰⢷⢿⠄
|
|||
|
|
⠀⠀⠀⠀⠀⣼⣷⣄
|
|||
|
|
⠀⠀⣤⣿⣇⣿⣿⣧⣿⡄
|
|||
|
|
⢴⠾⠋⠀⠀⠻⣿⣷⣿⣿⡀
|
|||
|
|
⠀⢀⣿⣿⡿⢿⠈⣿
|
|||
|
|
⠀⠀⠀⢠⣿⡿⠁⠀⡊⠀⠙
|
|||
|
|
⠀⠀⠀⢿⣿⠀⠀⠹⣿
|
|||
|
|
⠀⠀⠀⠀⠹⣷⡀⠀⣿⡄
|
|||
|
|
⠀⠀⠀⠀⣀⣼⣿⠀⢈⣧
|
|||
|
|
"""
|
|||
|
|
w = MessageBox(
|
|||
|
|
title='坤家军!集合!',
|
|||
|
|
content=content,
|
|||
|
|
parent=self.parent()
|
|||
|
|
)
|
|||
|
|
w.yesButton.setText('献出心脏')
|
|||
|
|
w.cancelButton.setText('你干嘛~')
|
|||
|
|
w.exec()
|
|||
|
|
|
|||
|
|
|
|||
|
|
class Demo(ImageLabel):
|
|||
|
|
|
|||
|
|
def __init__(self):
|
|||
|
|
super().__init__()
|
|||
|
|
self.setImage("resource/chidanta.jpg")
|
|||
|
|
self.scaledToWidth(500)
|
|||
|
|
|
|||
|
|
self.setWindowIcon(QIcon(':/qfluentwidgets/images/logo.png'))
|
|||
|
|
#self.systemTrayIcon = SystemTrayIcon(self)
|
|||
|
|
#self.systemTrayIcon.show()
|
|||
|
|
|
|||
|
|
# setTheme(Theme.DARK)
|
|||
|
|
|
|||
|
|
def contextMenuEvent(self, e):
|
|||
|
|
menu = AcrylicMenu(parent=self)
|
|||
|
|
# menu = AcrylicCheckableMenu(parent=self, indicatorType=MenuIndicatorType.RADIO)
|
|||
|
|
|
|||
|
|
# NOTE: hide the shortcut key
|
|||
|
|
# menu.view.setItemDelegate(MenuItemDelegate())
|
|||
|
|
|
|||
|
|
# add actions
|
|||
|
|
menu.addAction(Action(FIF.COPY, 'Copy'))
|
|||
|
|
menu.addAction(Action(FIF.CUT, 'Cut'))
|
|||
|
|
menu.actions()[0].setCheckable(True)
|
|||
|
|
menu.actions()[0].setChecked(True)
|
|||
|
|
|
|||
|
|
# add sub menu
|
|||
|
|
submenu = AcrylicMenu("Add to", self)
|
|||
|
|
submenu.setIcon(FIF.ADD)
|
|||
|
|
submenu.addActions([
|
|||
|
|
Action(FIF.VIDEO, 'Video'),
|
|||
|
|
Action(FIF.MUSIC, 'Music'),
|
|||
|
|
])
|
|||
|
|
menu.addMenu(submenu)
|
|||
|
|
|
|||
|
|
# add actions
|
|||
|
|
menu.addActions([
|
|||
|
|
Action(FIF.PASTE, 'Paste'),
|
|||
|
|
Action(FIF.CANCEL, 'Undo')
|
|||
|
|
])
|
|||
|
|
|
|||
|
|
# add separator
|
|||
|
|
menu.addSeparator()
|
|||
|
|
menu.addAction(QAction(f'Select all', shortcut='Ctrl+A'))
|
|||
|
|
|
|||
|
|
# insert actions
|
|||
|
|
menu.insertAction(
|
|||
|
|
menu.actions()[-1], Action(FIF.SETTING, 'Settings', shortcut='Ctrl+S'))
|
|||
|
|
menu.insertActions(
|
|||
|
|
menu.actions()[-1],
|
|||
|
|
[Action(FIF.HELP, 'Help', shortcut='Ctrl+H'),
|
|||
|
|
Action(FIF.FEEDBACK, 'Feedback', shortcut='Ctrl+F')]
|
|||
|
|
)
|
|||
|
|
menu.actions()[-2].setCheckable(True)
|
|||
|
|
menu.actions()[-2].setChecked(True)
|
|||
|
|
|
|||
|
|
# show menu
|
|||
|
|
menu.exec(e.globalPos(), aniType=MenuAnimationType.DROP_DOWN)
|
|||
|
|
|
|||
|
|
|
|||
|
|
if __name__ == '__main__':
|
|||
|
|
app = QApplication(sys.argv)
|
|||
|
|
w = Demo()
|
|||
|
|
w.show()
|
|||
|
|
app.exec()
|