我遇到一个问题,我想在 QPushButton 悬停或按下时将其字体加粗。但 font-weight 属性仅在正常状态下有效,在字体状态下它不会影响任何东西。 我真的在寻找解决方案。
最佳答案
对我来说似乎是一个错误——样式表字体属性在悬停状态下被忽略。我无法使用样式表找到解决方法,但您始终可以子类化 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();
}
可能有点矫枉过正,但如果该功能对您的应用程序至关重要,那么它至少是一种解决方法。
关于css - 无法在 qt 中设置伪状态的字体粗细,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9189145/