Files

113 lines
3.6 KiB
Python

# coding:utf-8
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QVBoxLayout
from qfluentwidgets import (PushButton, TeachingTip, TeachingTipTailPosition, InfoBarIcon, setTheme, Theme,
TeachingTipView, FlyoutViewBase, BodyLabel, PrimaryPushButton, PopupTeachingTip)
class CustomFlyoutView(FlyoutViewBase):
def __init__(self, parent=None):
super().__init__(parent)
self.vBoxLayout = QVBoxLayout(self)
self.label = BodyLabel(
'这是一场「试炼」,我认为这就是一场为了战胜过去的「试炼」,\n只有战胜了那些幼稚的过去,人才能有所成长。')
self.button = PrimaryPushButton('Action')
self.button.setFixedWidth(140)
self.vBoxLayout.setSpacing(12)
self.vBoxLayout.setContentsMargins(20, 16, 20, 16)
self.vBoxLayout.addWidget(self.label)
self.vBoxLayout.addWidget(self.button)
def paintEvent(self, e):
pass
class Demo(QWidget):
def __init__(self):
super().__init__()
# setTheme(Theme.DARK)
# self.setStyleSheet("Demo{background: rgb(32, 32, 32)}")
self.hBoxLayout = QHBoxLayout(self)
self.button1 = PushButton('Top', self)
self.button2 = PushButton('Bottom', self)
self.button3 = PushButton('Custom', self)
self.resize(700, 500)
self.button1.setFixedWidth(150)
self.button2.setFixedWidth(150)
self.button3.setFixedWidth(150)
self.hBoxLayout.addWidget(self.button2, 0, Qt.AlignHCenter)
self.hBoxLayout.addWidget(self.button1, 0, Qt.AlignHCenter)
self.hBoxLayout.addWidget(self.button3, 0, Qt.AlignHCenter)
self.button1.clicked.connect(self.showTopTip)
self.button2.clicked.connect(self.showBottomTip)
self.button3.clicked.connect(self.showCustomTip)
def showTopTip(self):
position = TeachingTipTailPosition.BOTTOM
view = TeachingTipView(
icon=None,
title='Lesson 5',
content="最短的捷径就是绕远路,绕远路才是我的最短捷径。",
image='resource/Gyro.jpg',
# image='resource/boqi.gif',
isClosable=True,
tailPosition=position,
)
# add widget to view
button = PushButton('Action')
button.setFixedWidth(120)
view.addWidget(button, align=Qt.AlignRight)
w = TeachingTip.make(
target=self.button1,
view=view,
duration=-1,
tailPosition=position,
parent=self
)
view.closed.connect(w.close)
def showBottomTip(self):
TeachingTip.create(
target=self.button2,
icon=InfoBarIcon.SUCCESS,
title='Lesson 4',
content="表达敬意吧,表达出敬意,然后迈向回旋的另一个全新阶段!",
isClosable=True,
tailPosition=TeachingTipTailPosition.TOP,
duration=2000,
parent=self
)
def showCustomTip(self):
# TeachingTip.make(
PopupTeachingTip.make(
target=self.button3,
view=CustomFlyoutView(),
tailPosition=TeachingTipTailPosition.RIGHT,
duration=2000,
parent=self
)
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_()