gpt4 book ai didi

c++ - Qt:改变字体粗细

转载 作者:太空狗 更新时间:2023-10-29 22:56:35 26 4
gpt4 key购买 nike

我想让 QLabel 中的文本介于粗体和普通样式之间,我相信设置字体粗细应该是我问题的答案。

在 Qt 文档中,我发现有两种更改字体粗细的选项:

  1. 从 cpp 端通过:QFont::setWeight() 方法接受数字 0-99

    http://doc.qt.io/qt-4.8/qfont.html#Weight-enum

  2. 来自 Qss 样式:font-weight 属性,它接受数字 100,200,...,900

    http://doc.qt.io/qt-4.8/stylesheet-reference.html#font-weight

这两种方法我都试过了,但似乎没有任何效果。我总是只得到正常或普通的粗体风格,而没有介于两者之间的东西。

示例:

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();

在上面的示例中,我创建了 3 个标签。一种没有任何额外设置,一种是我通过 setWeight 方法更改字体粗细,另一种是应通过 Qss 样式更改字体粗细。但这三者最终将完全相同。

我什至尝试过增大字体、启用抗锯齿或使用不同的字体,但都无济于事。

最佳答案

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; }");

关于c++ - Qt:改变字体粗细,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47455589/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com