我遇到一个奇怪的问题,即设置为QCheckBox的字体会在第一次点击后更改字体以检查或取消选中它。我不知道为什么。 checkbox是一个简单的QCheckBox。字体变化很微妙。就像从低分辨率字体,到具有轻微颜色变化的抗锯齿。
我没有这样做的代码,我不知道它为什么会发生.3
样式表:
QCheckBox#TestCheck::indicator:checked
{
image: url(:/images/box_checked.png);
color: #535353;
}
QCheckBox#TestCheck::indicator:unchecked
{
image: url(:/images/box_unchecked.png);
color: #535353;
}
我的代码:
QFont font("Avenir LT Com");
font.setWeight(QFont::Bold);
font.setStyleStrategy(QFont::PreferAntialias);
font.setPixelSize(16);
this->checkbox = new QCheckBox(this);
this->shareScreenCheckbox->setObjectName(QString::fromUtf8("TestCheck"));
this->checkbox->setGeometry(10, 10, 400, 27);
this->checkbox->setText("This is a test");
this->checkbox->setFont(font);
this->checkbox->show();
最终结果:
当你发起......
首先点击......
再次点击...
正如您所看到的......字体更改不起作用。第一种字体不同。单击更改字体,并保留它。发生了什么事?
答案 0 :(得分:0)
在qt 5.3下运行代码后,我无法重现您的问题。但是前段时间我有一个非常类似的问题,qt 5.1.1也许这个解决方法对你有帮助
QT 5.1.1: Checkbox in QWebview shows strange behavior under Win 7 (x64) / Win 8
class CustomStyle : public QProxyStyle
{
void drawControl(ControlElement element, const QStyleOption* option, QPainter* painter, const QWidget* widget) const
{
if (element == QStyle::CE_CheckBox && dynamic_cast<QWebView*>(option->styleObject))
option->styleObject->setProperty("_q_no_animation", true);
QProxyStyle::drawControl(element, option, painter, widget);
}
};
如果没有,你应该在https://bugreports.qt-project.org
写一个bug报告