pyqttooltip
v1.0.0
PYQT和Pyside的現代且完全可定制的工具提示庫

PyQt5 , PyQt6 , PySide2和PySide6合作6 pip install pyqttooltip
from PyQt6 . QtWidgets import QMainWindow , QPushButton
from pyqttooltip import Tooltip , TooltipPlacement
class Window ( QMainWindow ):
def __init__ ( self ):
super (). __init__ ( parent = None )
# Add button
self . button = QPushButton ( 'Button' , self )
# Add tooltip to button
self . tooltip = Tooltip ( self . button , 'This is a tooltip' )在懸停小部件時,將自動顯示該工具提示。如果要手動顯示和隱藏工具提示,則可以使用show()和hide()方法:
tooltip . show ()
tooltip . hide ()要刪除工具提示,您可以使用deleteLater()方法:
tooltip . deleteLater ()要在顯示或隱藏工具提示時獲得通知,您可以訂閱shown和hidden信號:
tooltip . shown . connect ( lambda : print ( 'shown' ))
tooltip . hidden . connect ( lambda : print ( 'hidden' )) tooltip . setWidget ( widget ) # Default: None tooltip . setText ( 'Text of the tooltip' ) # Default: '' tooltip . setPlacement ( TooltipPlacement . RIGHT ) # Default: TooltipPlacement.AUTO可用位置:
AUTO,LEFT,RIGHT,TOP,BOTTOM
tooltip . setFallbackPlacements ([ TooltipPlacement . TOP , TooltipPlacement . BOTTOM ]) # Default: []如果該工具提示在屏幕上不適合主放置,則將在提供的列表的順序中選擇其中一個後備位置。
要獲取工具提示的當前放置,您可以使用getActualPlacement()方法。
tooltip . setTriangleEnabled ( False ) # Default: True tooltip . setTriangleSize ( 7 ) # Default: 5 tooltip . setDuration ( 1000 ) # Default: 0持續時間是毫秒中的時間,工具提示將再次逐漸消失。如果將持續時間設置為
0,則只要小部件懸停,工具提示將保持可見。
# Setting the offset for a specific placement
tooltip . setOffsetByPlacement ( TooltipPlacement . LEFT , QPoint ( - 10 , 5 ))
# Using a dict that specifies the offset for each placement you want to set
offsets = {
TooltipPlacement . LEFT : QPoint ( - 10 , 5 ),
TooltipPlacement . RIGHT : QPoint ( 10 , 5 ),
TooltipPlacement . TOP : QPoint ( 5 , - 10 ),
TooltipPlacement . BOTTOM : QPoint ( 5 , 10 )
}
tooltip . setOffsets ( offsets )
# Setting the offsets for all the placements to a single value
tooltip . setOffsetsAll ( QPoint ( 10 , 5 ))每個位置 /側面都有自己的偏移量,以允許完整的可自定義性。每個偏移量都是一個QPoint,由X和Y值組成。
默認情況下,所有偏移都設置為QPoint(0, 0)。
tooltip . setShowDelay ( 500 ) # Default: 50
tooltip . setHideDelay ( 500 ) # Default: 50 tooltip . setFadeInDuration ( 250 ) # Default: 150
tooltip . setFadeOutDuration ( 250 ) # Default: 150 tooltip . setBorderRadius ( 0 ) # Default: 2 tooltip . setBorderEnabled ( True ) # Default: False tooltip . setBackgroundColor ( QColor ( '#FCBA03' )) # Default: QColor('#111214')
tooltip . setTextColor ( QColor ( '#000000' )) # Default: QColor('#CFD2D5')
tooltip . setBorderColor ( QColor ( '#A38329' )) # Default: QColor('#403E41') tooltip . setFont ( QFont ( 'Consolas' , 10 )) # Default: QFont('Arial', 9, QFont.Weight.Bold) tooltip . setMargins ( QMargins ( 10 , 8 , 10 , 8 )) # Default: QMargins(12, 8, 12, 7) tooltip . setMaximumWidth ( 150 ) # Default: 16777215 (QWIDGETSIZE_MAX) tooltip . setTextCenteringEnabled ( False ) # Default: True tooltip . setDropShadowEnabled ( False ) # Default: True tooltip . setDropShadowStrength ( 3.5 ) # Default: 2.0 tooltip . setOpacity ( 0.8 ) # Default: 1.0
其他自定義選項:
| 選項 | 描述 | 預設 |
|---|---|---|
setShowingOnDisabled() | 是否還應在殘疾的小部件上顯示工具提示 | False |
setFadeInEasingCurve() | 動畫中淡出的寬鬆曲線 | QEasingCurve.Type.Linear |
setFadeOutEasingCurve() | 淡出動畫的寬鬆曲線 | QEasingCurve.Type.Linear |
setMarginLeft() | 單獨設置左路 | 12 |
setMarginRight() | 單獨設置右鍵 | 12 |
setMarginTop() | 單獨設置最高邊距 | 8 |
setMarginBottom() | 單獨設置底部邊距 | 7 |
可以在演示文件夾中找到PYQT5,PYQT6和Pyside6的演示。
為了保持演示簡單,只有最重要的功能包括在內。要獲取所有自定義選項的概述,請查看上面的文檔。
安裝所需的測試依賴項pyqt6,pytest和Coveragepy:
pip install PyQt6 pytest coverage
要使用覆蓋範圍進行測試,請克隆此存儲庫,進入主要目錄並運行:
coverage run -m pytest
coverage report --ignore-errors -m
該軟件已根據MIT許可獲得許可。