我想要以下行为:
我已经尝试过了,但是它使链接无法使用,并且仅当鼠标位于非常特定的位置时才会发生颜色变化:
from PyQt6.QtWidgets import QLabel, QApplication
from PyQt6.QtGui import QMouseEvent
import sys
class SpecialLinkLabel(QLabel):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.linkHovered.connect(self.change_link_color)
def mouseMoveEvent(self, event: QMouseEvent):
if 'color: #999999' in self.text():
self.setText(self.text().replace('color: #999999', 'color: #1597BB'))
return super().mouseMoveEvent(event)
def change_link_color(self):
if 'color: #1597BB' in self.text():
self.setText(self.text().replace('color: #1597BB', 'color: #999999'))
app = QApplication(sys.argv)
special_label = SpecialLinkLabel(
'Click <a href="https://random.dog/" style="color: #1597BB">here</a> for something special!</a>'
)
special_label.setOpenExternalLinks(True)
special_label.show()
sys.exit(app.exec())
不确定这是否可能。