如何在鼠标悬停在小部件上时显示带标记的标签

2024-04-24 23:07:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要知道如何使一个突出显示的标签(或小框)出现当鼠标在小部件像当你使用浏览器和把鼠标放在(重新加载/返回/等…)按钮一个小框会出现,并告诉你这个按钮做什么 我希望任何小部件都是这样,而不仅仅是工具栏上的小部件


Tags: 部件浏览器标签鼠标按钮工具栏当鼠标
2条回答

eventFilter

import sys
from PyQt5.QtWidgets import (QLabel, QApplication, QWidget, QVBoxLayout)
from PyQt5.QtCore import (QSize, QEvent)


class Widget(QWidget):
    def __init__(self, parent=None):
        try:
            super(QWidget, self).__init__(parent)
            self.setFixedSize(QSize(200, 200))
            self.setStyleSheet("background-color: gray;")
            self.layout = QVBoxLayout()
            self.label = QLabel()
            self.label.setFixedSize(QSize(100, 20))
            self.label.setStyleSheet("background-color: #000000; color: yellow;")
            self.label.setText("highlighted label")
            self.label.setVisible(False)
            self.layout.addWidget(self.label)
            self.setLayout(self.layout)
            self.installEventFilter(self)
        except Exception as e:
            print(e)

    def eventFilter(self, _object, event):
        try:
            print(f"{_object} {event}")
            if event.type() == QEvent.Enter:
                self.label.setVisible(True)
            elif event.type() == QEvent.Leave:
                self.label.setVisible(False)
            return False
        except Exception as e:
            print(e)


if __name__ == "__main__":
    app = QApplication(sys.argv)
    w = Widget()
    w.show()
    sys.exit(app.exec_())

mouse enter/leave pyqt5 event filter

正如@ekhumoro的评论所说 setToolTip就是解决方案

相关问题 更多 >