62 lines
2.3 KiB
Python
62 lines
2.3 KiB
Python
# coding:utf-8
|
|
import sys
|
|
from PyQt5.QtCore import QEvent, QPoint, Qt, QUrl
|
|
from PyQt5.QtGui import QDesktopServices
|
|
from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout
|
|
|
|
from qfluentwidgets import setTheme, Theme, PushButton, ToolTipPosition
|
|
from qfluentwidgets.components.material import AcrylicToolTipFilter
|
|
|
|
class Demo(QWidget):
|
|
|
|
def __init__(self):
|
|
super().__init__()
|
|
self.hBox = QHBoxLayout(self)
|
|
self.button1 = PushButton('キラキラ', self)
|
|
self.button2 = PushButton('食べた愛', self)
|
|
self.button3 = PushButton('シアワセ', self)
|
|
|
|
# use dark theme
|
|
# setTheme(Theme.DARK)
|
|
self.setStyleSheet('Demo{background:white}')
|
|
|
|
self.button1.setToolTip('aiko - キラキラ ✨')
|
|
self.button2.setToolTip('aiko - 食べた愛 🥰')
|
|
self.button3.setToolTip('aiko - シアワセ 😊')
|
|
self.button1.setToolTipDuration(1000)
|
|
# self.button2.setToolTipDuration(-1) # won't disappear
|
|
|
|
self.button1.installEventFilter(AcrylicToolTipFilter(self.button1, 0, ToolTipPosition.TOP))
|
|
self.button2.installEventFilter(AcrylicToolTipFilter(self.button2, 0, ToolTipPosition.BOTTOM))
|
|
self.button3.installEventFilter(AcrylicToolTipFilter(self.button3, 300, ToolTipPosition.RIGHT))
|
|
|
|
self.button1.clicked.connect(lambda: QDesktopServices.openUrl(QUrl(
|
|
'https://www.youtube.com/watch?v=S0bXDRY1DGM&list=RDMM&index=1')))
|
|
self.button2.clicked.connect(lambda: QDesktopServices.openUrl(QUrl(
|
|
'https://www.youtube.com/watch?v=CZLs8GuCq2U&list=RDMM&index=4')))
|
|
self.button3.clicked.connect(lambda: QDesktopServices.openUrl(QUrl(
|
|
'https://www.youtube.com/watch?v=fp-yJUB7sS8&list=RDMM&index=3')))
|
|
|
|
self.hBox.setContentsMargins(24, 24, 24, 24)
|
|
self.hBox.setSpacing(16)
|
|
self.hBox.addWidget(self.button1)
|
|
self.hBox.addWidget(self.button2)
|
|
self.hBox.addWidget(self.button3)
|
|
|
|
self.resize(480, 240)
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
# enable dpi scale
|
|
QApplication.setHighDpiScaleFactorRoundingPolicy(
|
|
Qt.HighDpiScaleFactorRoundingPolicy.PassThrough)
|
|
QApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
|
|
QApplication.setAttribute(Qt.AA_UseHighDpiPixmaps)
|
|
|
|
app = QApplication(sys.argv)
|
|
w = Demo()
|
|
w.show()
|
|
app.exec_()
|