当鼠标光标移到 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/