Una biblioteca de información sobre herramientas moderna y totalmente personalizable para Pyqt y Pyside

PyQt5 , PyQt6 , PySide2 y PySide6 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' ) La información sobre herramientas se mostrará automáticamente mientras se desplaza el widget. Si desea mostrar y ocultar manualmente la información sobre herramientas, puede usar los métodos show() y hide() :
tooltip . show ()
tooltip . hide () Para eliminar una información sobre herramientas, puede usar el método deleteLater() :
tooltip . deleteLater () Para recibir una notificación cuando se muestra o oculta una información sobre herramientas, puede suscribirse a las señales shown y 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.AUTOUbicaciones disponibles:
AUTO,LEFT,RIGHT,TOP,BOTTOM
tooltip . setFallbackPlacements ([ TooltipPlacement . TOP , TooltipPlacement . BOTTOM ]) # Default: []Si la información sobre herramientas no cabe en la pantalla con la colocación principal, una de las ubicaciones alternativas se eligirá en su lugar en el orden de la lista proporcionada.
Para obtener la colocación actual de la información sobre herramientas, puede usar el métodogetActualPlacement().
tooltip . setTriangleEnabled ( False ) # Default: True tooltip . setTriangleSize ( 7 ) # Default: 5 tooltip . setDuration ( 1000 ) # Default: 0La duración es el tiempo en milisegundos, después de lo cual la información sobre herramientas comenzará a desvanecerse nuevamente. Si la duración se establece en
0, la información sobre herramientas se mantendrá visible mientras el widget esté rondado.
# 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 ))Cada ubicación / lado tiene su propio desplazamiento para permitir la personalización completa. Cada desplazamiento es un punto Q, que se compone de un valor X e Y.
Por defecto, todas las compensaciones se establecen enQPoint(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
Otras opciones de personalización:
| Opción | Descripción | Por defecto |
|---|---|---|
setShowingOnDisabled() | Si las información sobre herramientas también deben mostrarse en widgets deshabilitados | False |
setFadeInEasingCurve() | La curva de flexión del desvanecimiento en la animación | QEasingCurve.Type.Linear |
setFadeOutEasingCurve() | La curva de flexión de la animación Fade Out | QEasingCurve.Type.Linear |
setMarginLeft() | Establezca el margen izquierdo individualmente | 12 |
setMarginRight() | Establezca el margen derecho individualmente | 12 |
setMarginTop() | Establezca el margen superior individualmente | 8 |
setMarginBottom() | Establezca el margen inferior individualmente | 7 |
Las demostraciones para Pyqt5, Pyqt6 y Pyside6 se pueden encontrar en la carpeta de demostración.
Para mantener la demostración simple, solo se incluyen las características más importantes. Para obtener una descripción general de todas las opciones de personalización, consulte la documentación anterior.
Instalación de las dependencias de prueba requeridas Pyqt6, Pytest y Cobebagey:
pip install PyQt6 pytest coverage
Para ejecutar las pruebas con cobertura, clone este repositorio, vaya al directorio principal y ejecute:
coverage run -m pytest
coverage report --ignore-errors -m
Este software tiene licencia bajo la licencia MIT.