c++ - QT - 将鼠标悬停在 QLabel 上时发出信号

标签 c++ qt qlabel

我想在 QT 中用鼠标悬停 QLabel 时发出信号。

这可能吗?

如果没有,我该怎么做?

谢谢。

最佳答案

您可以在不继承 QLabel 的情况下进行悬停处理。尝试下一个代码示例:

void LabelHoverHandler::attach(QLabel *label)
{
    label->setAttribute(Qt::WA_Hover, true);
    label->installEventFilter(this);
}

bool LabelHoverHandler::eventFilter(QObject *obj, QEvent *event)
{
    if (event->type() == QEvent::HoverEnter)
    {
        emit signalMouseHover(dynamic_cast<QLabel*>(obj) );
        qDebug() << "HoverEnter";
    }

    return false;
}

LabelHoverHandler 头文件:

class LabelHoverHandler : public QObject
{
    Q_OBJECT
public:
    LabelHoverHandler(QObject *parent);
    virtual ~LabelHoverHandler() {};

    void attach(QLabel *label);

protected:
    bool eventFilter(QObject *obj, QEvent *event);

signals:
    void signalMouseHover(QLabel*);
};

只需创建 LabelHoverHandler 的实例,并调用方法 attach() 并将所需的标签作为参数。

关于c++ - QT - 将鼠标悬停在 QLabel 上时发出信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43782336/

相关文章:

c++ - 即使是最小的更新后 QGraphicsScene 也会崩溃

c++ - 子类化 QGraphicsView,自定义鼠标事件

python - 在 PyQT 中获取 QLabel 点击的信息

c++ - 如何在 Qt 中翻转图像?

c++ - 如何使用 C++ 执行 shell 命令并与 linux 上的输出交互?

c++ - 开始 OpenCL 教程?

c++ - C++ 程序中的 Lisp 解释器

c++ - 获取具有计数的 vector 的不同 vector

c++ - 如何在 Qt Creator 中更改/配置所需的编译器?即在 MSVC/Mingw 或 g++/clang++ 之间切换

python - 在 QLabel HTML 内容周围绘制边框