当鼠标光标移过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; }");
}
答案 0 :(得分:2)
根据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);
}
答案 1 :(得分:0)
您可以使用以下构造:
QLabel *text= new QLabel("Your text");
text->setStyleSheet("font-weight: bold; color: green; text-decoration: underline");
我正在使用它,效果很好。 ;)