gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 13:01:57 25 4
gpt4 key购买 nike

我想在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com