颜色标签不适用于QPushButtons

时间:2015-07-29 20:17:11

标签: css qt qt-creator qt4.8

我正在使用QT Creator 3.0.1(使用QT 4.8)中的UI设计器在我的用户界面中设置按钮样式。我试图让这些按钮的行为更像网站上的链接 - 没有边框,并响应鼠标悬停。这是我目前使用的样式表:

QPushButton {
    border: none;
    color: #a8a8a8;
}

QPushButton:hover {
    color: #ffffff;
}

我认为这很简单,但由于某种原因,彩色标签在悬停时不起作用。为了测试,我尝试以其他方式更改按钮,例如更改背景颜色,以及完美无缺的工作。 我还尝试通过包含祖先(QWidget QPushButton:hover)和使用ID(QPushButton#templateButton)将选择器更改为更具体的东西,但两者都没有用。

这是彩色标签的问题,还是我遗漏了一些明显的东西?

3 个答案:

答案 0 :(得分:1)

也可以使用QLabel创建可点击链接。创建自定义类ClickableLabel,它继承QLabel并处理mousePressEvents

class ClickableLabel : public QLabel
{
    Q_OBJECT
public:
    explicit ClickableLabel(QWidget *parent = 0);

signals:
    void clicked();

protected:
    void mousePressEvent(QMouseEvent * event) ;
};

void ClickableLabel::mousePressEvent(QMouseEvent * event)
{
    Q_UNUSED(event);
    emit clicked();
}

也可以处理鼠标悬停事件并根据它们更改标签的样式。但是,我还没有测试过它。

此解决方案已从某处复制,但我不再记得原始来源。

答案 1 :(得分:0)

试试这个:

#templateButton {
    border: 0px;
    color: #a8a8a8;
    text-decoration: underline;
    text-align: right;
}

#templateButton:hover {
    color: #FFFFFF;
}

答案 2 :(得分:0)

@Anthony Hilyard我给你看了一些照片,所以我在这里发布另一个答案。 1.normal enter image description here

2.hover enter image description here

#pushButtonForgetPassword { border: none; color: #0066ff; text-decoration: underline; text-align: right; }

#pushButtonForgetPassword:hover { color: #FFFFFF; }

pushButtonForgetPassword将是我的链接按钮的ID