我希望QFont::setWeight()
中的文字介于粗体和普通样式之间,我相信设置字体粗细应该是我问题的答案。
在Qt文档中,我发现有两种选择如何更改字体粗细:
从cpp侧通过:font-weight
方法接受数字0-99
从Qss样式到:QLabel* test1 = new QLabel("Font-weight testing");
test1->show();
QLabel* test2 = new QLabel("Font-weight testing");
QFont font = test2->font();
font.setWeight(40);
test2->setFont(font);
test2->show();
QLabel* test3 = new QLabel("Font-weight testing");
test3->setStyleSheet("font-weight: 400");
test3->show();
属性,接受数字100,200,...,900
http://doc.qt.io/qt-4.8/stylesheet-reference.html#font-weight
我尝试了两种方法,但似乎没有任何效果。我总是得到正常或普通的大胆风格,而且介于两者之间。
示例:
setWeight
在上面的示例中,我创建了3个标签。一个没有任何额外设置,一个是通过typeid(T) == typeid(const T)
方法改变字体粗细的一个,另一个是通过Qss样式改变字体粗细的设置。但这三个人最终会完全一样。
我甚至尝试使字体更大,启用抗锯齿,或使用不同的字体,但没有任何帮助。
答案 0 :(得分:1)
QFont::setWeight
方法期望其输入值为QFont::Weight
枚举值之一。
http://doc.qt.io/qt-5/qfont.html#setWeight
正确的版本:
QLabel* test2 = new QLabel("Font-weight testing");
QFont font = test2->font();
font.setWeight(QFont::Bold);
test2->setFont(font);
此外,您在QSS版本中有两个错误。首先,您没有为规则指定选择器。其次,400的值对应于' normal'字体。
https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight
正确的版本:
QLabel* test3 = new QLabel("Font-weight testing");
test3->setStyleSheet("QLabel { font-weight: bold; }");
答案 1 :(得分:0)
使用功能setWeight
,如下所示:setWeight(QFont::ExtraBold);
QFont font;
font.setWeight(QFont::ExtraBold); // set font weight with enum QFont::Weight
font.setPixelSize(25); // this for setting font size
ui->label->setFont(font);
void QFont :: setWeight(int weight): 将字体的权重设置为权重,该值应为QFont::Weight枚举中的值。