PYQT 및 Pyside 용 현대적이고 완벽하게 사용자 정의 가능한 툴팁 라이브러리

PyQt5 , PyQt6 , PySide2 및 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' ) 위젯을 호버링하는 동안 툴팁이 자동으로 표시됩니다. 툴팁을 수동으로 표시하고 숨기려면 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 ))각 배치 / 측에는 전체 사용자 정의 가능성을 허용하기 위해 자체 오프셋이 있습니다. 각 오프셋은 Q 및 Y 값으로 구성된 QPoint입니다.
기본적으로 모든 오프셋은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 라이센스에 따라 라이센스가 부여됩니다.