无法在qt中为伪状态设置font-weight

时间:2012-02-08 07:11:01

标签: css qt

我遇到一个问题,我想在QPushButton中悬停或按下时使字体变粗。但是font-weight属性只能在正常状态下工作,在字体状态下它不会影响任何东西。 我真的在寻找解决方案。

1 个答案:

答案 0 :(得分:3)

对我来说看起来像个错误 - 在悬停状态下忽略样式表字体属性。我无法使用样式表提出解决方法,但您始终可以继承QPushButton以获得所需内容:

#include <QtGui>

class HoverablePushButton : public QPushButton {
public:
  HoverablePushButton(const QString &text, QWidget *parent = NULL)
    : QPushButton(text, parent) {}

protected:
  void enterEvent(QEvent *event) {
    QPushButton::enterEvent(event);
    QFont f(font());
    f.setBold(true);
    setFont(f);
  }

  void leaveEvent(QEvent *event) {
    QPushButton::leaveEvent(event);
    QFont f(font());
    f.setBold(false);
    setFont(f);
  }
};

int main(int argc, char **argv) {
  QApplication app(argc, argv);
  HoverablePushButton b("hello!");
  b.show();
  return app.exec();
}

可能有点矫枉过正,但如果功能对您的应用程序至关重要,那么至少有一种解决方法。