【问题标题】:How to use qss to set radio button bold when checked?选中时如何使用qss将单选按钮设置为粗体?
【发布时间】:2016-10-14 15:05:20
【问题描述】:

我想让QRadioButton的文本在勾选的时候是粗体的,但是用qss不勾选的时候正常。

我试过了:

.QRadioButton {
    font-weight: normal;
    background-color: #FFFFFF;
}

.QRadioButton:checked {
    font-weight: bold;
    background-color: #AA0000;
}

当我检查单选按钮时,它的背景颜色改变了,但字体没有改变。 有谁知道我做错了吗?

【问题讨论】:

  • 在改变单选按钮状态后尝试调用polish / unpolish。默认情况下,仅QToolButtons 支持动态更改字体样式(我记得)
  • 我在连接到toggled 信号的槽函数中尝试polish / unpolish。它没有用。最后,我在槽函数中使用了一个属性来指示字体bold/normalsetProperty。有效!我想知道 propertychecked 状态之间的区别。

标签: c++ qt qt5


【解决方案1】:

将样式表属性 font 设置为 normalbold 应该会有所帮助。

QRadioButton {
    font: normal;
    background-color: #FFFFFF;
}

QRadioButton:checked {
    font: bold;
    background-color: #AA0000;
}

不过,font-weight 的文档 do say 应该可以工作。如果这对您不起作用,您可以为 Qt 公司提交错误。通过复合 font 属性设置 boldnormal 也是合法的,并且在很多情况下都对我有用。

【讨论】:

  • 顺便说一句,QRadioButton 前面的点代表什么?当我做 widget->setStyleSheet("SomeWindget{ font:bold; }");
  • 圆点表示class selector。它匹配 QRadioButton 的实例,但不匹配它的子类。如果未指定点,则将匹配 QRadioButton 及其子类的实例。无论哪种方式都不会影响结果。选中后,单选按钮的字体保持不变。
猜你喜欢
  • 2010-10-12
  • 2016-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-14
  • 1970-01-01
相关资源
最近更新 更多