gpt4 book ai didi

c++ - 如何创建qt标签悬停效果?

转载 作者:行者123 更新时间:2023-11-30 01:41:50 32 4
gpt4 key购买 nike

我必须在 Qt 标签上使用悬停事件,但我找不到相关信息。我尝试使用类似 ui->label->setText("<a>ads</a>") 的东西和 onLinkHovered但它不能正常工作。

我必须在悬停时更改文本。

最佳答案

最灵活的解决方案是创建您自己的继承自 QLabel 的小部件。这样,您可以覆盖 enterEventleaveEvent @Jeremy 和 @Moe 正在写关于哪些是 protected 。作为这些方法实现的一部分,您可以相应地更改文本或装饰。例如:

class CustomLabel : public QLabel
{
Q_OBJECT
public:
CustomLabel(QWidget* parent = nullptr) : QLabel(parent){ }

protected:
void enterEvent(QEvent *ev) override
{
setStyleSheet("QLabel { background-color : blue; }");
}

void leaveEvent(QEvent *ev) override
{
setStyleSheet("QLabel { background-color : green; }");
}
};

另一种不太灵活的方法是为您在标签文本中指定的链接标记设置 href 属性。这样文本将被视为实际链接,您可以使用 linkHovered 信号进行连接。例如:

ui->label->setText("<a href='www.google.com'>link</a>");
connect(ui->label, &QLabel::linkHovered, this, [this](const QString&)
{
// do smth with the widget/text
});

但是请注意,这种方式只能对悬停事件进行修改。因此,如果您需要将标签恢复到其原始状态,第一个选项就是可行的方法。

关于c++ - 如何创建qt标签悬停效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40729040/

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