从QFontDatabase设置QFont会将所有标签设置为等宽字体吗? Qt C ++

问题描述 投票:0回答:1

我正在尝试将一个QLabel设置为等宽字体。默认情况下,我在设计器中将所有其他标签设置为“ Arame-Regular”。通常,在设计器中尝试将我的任何标签设置为“ Arame-Mono”(等宽字体)都无效。他们保持正常。

在我的mainwindow.cpp中的这段代码之后,应用程序中的每个标签都变为等距:

    QFontDatabase::addApplicationFont("/path/to/the/fonts/Arame-Mono.ttf");
    QFont monospace("Arame-Mono");
    ui->labelFontTest->setFont(monospace);

这解决了部分问题,我想可以使用等宽字体,但是我不希望应用程序中的每个标签都设置为等宽字体。我该如何仅解决这一特定标签,以将等宽字体应用于该标签,并使所有其他标签保持原样?

这的另一个副作用是我在启动时收到此消息:

qt.qpa.fonts: Populating font family aliases took 159 ms. Replace uses of missing font family "Arame-Mono" with one that exists to avoid this cost.

我都在Mac上本地安装了字体,并将它们添加到.pro文件中。字体位于项目目录内的fonts文件夹中:

DISTFILES += \
    Fonts/Arame-Mono.ttf \
    Fonts/Arame-Regular.ttf \

任何帮助表示赞赏!

c++ qt fonts qlabel qfont
1个回答
0
投票

我创建了一个简单的演示;它显示了三个标签,其中只有最后一个标签被手动设置为等宽字体:

© www.soinside.com 2019 - 2024. All rights reserved.