繁体   English   中英

强调QLabel的文字“悬停”

[英]Underline QLabel's text “on hover”

当鼠标光标越过QLabel ,我想将文本变为绿色并加下划线,但是,它只是变为绿色,不会加下划线。

  QLabel:hover { color: green; text-decoration: underline;}

我究竟做错了什么?

编辑:固定,我使用:

void QClickableLabel::enterEvent (QEvent *event)
{
    Q_UNUSED (event);
    setStyleSheet ("QLabel { color: green; text-decoration: underline; }");
}

void QClickableLabel::leaveEvent (QEvent *event)
{
    Q_UNUSED (event);
    setStyleSheet ("QLabel { color: black; }");
}

根据Qt文档 (对于Qt 4和Qt 5),QLabel“不支持:hover伪状态”。 猜猜好运,它甚至改变了颜色......

要模拟,您可以创建一个QLabel子类并将窗口小部件提升到它。 然后实现enterEvent()leaveEvent()方法,对窗口小部件进行必要的更改,例如

void MyLabel::enterEvent(QEvent* event)
{
    QFont f = font();
    f.setUnderline(true);
    setFont(f);
}

void MyLabel::leaveEvent(QEvent* event)
{
    QFont f = font();
    f.setUnderline(false);
    setFont(f);
}

您可以使用以下构造:

QLabel *text= new QLabel("Your text"); text->setStyleSheet("font-weight: bold; color: green; text-decoration: underline");

我正在使用它,它的功能非常好。 ;)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM