ห้องสมุดคำแนะนำเครื่องมือเครื่องมือที่ทันสมัยและปรับแต่งได้อย่างสมบูรณ์สำหรับ 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 ))แต่ละตำแหน่ง / ด้านข้างมีการชดเชยของตัวเองเพื่อให้สามารถปรับแต่งได้เต็มรูปแบบ การชดเชยแต่ละครั้งเป็น 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