Как показать выделенную метку, когда мышь находится на виджете - PullRequest
0 голосов
/ 08 октября 2019

Мне нужно знать, как сделать подсвеченную метку (или маленькую рамку), когда мышь находится на виджете, например, когда вы используете браузер и нажимаете кнопку (перезагрузить / назад / и т. Д.) Маленькую рамкупоявится и скажет вам, что делает эта кнопка, и я хочу, чтобы для любого виджета не только виджеты на панели инструментов

Ответы [ 2 ]

0 голосов
/ 08 октября 2019

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

0 голосов
/ 08 октября 2019

Как говорится в комментарии @ekhumoro, setToolTip - это решение

...