[英]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.