当鼠标光标移到 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 documentation(对于 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);
}

关于c++ - 下划线 QLabel 的文本 "on hover",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38946327/

10-13 08:09