如何在 Qt 样式表中使用嵌入字体?

Joh*_*ith 8 c++ qt stylesheet qtstylesheets

我在 .qrc 资源文件中添加了字体名称“:font/Oswald-Regular.ttf”。我想在我的 Qt 样式表中为所有 QLabel 使用它。

这是 Arial 的代码:

QLabel
{
color: white;
font: 10pt "Arial";
}
Run Code Online (Sandbox Code Playgroud)

p-a*_*l-o 10

将字体添加到您的字体数据库中main

QFontDatabase::addApplicationFont(":/fonts/Oswald-Regular.ttf");
Run Code Online (Sandbox Code Playgroud)

您可能想检查函数返回值(0 表示成功)和/或数据库中可用的字体:

  QFontDatabase db;
  for(int i=0; i<db.families().size(); i++)
  {
    qDebug() << db.families().at(i);
  }
Run Code Online (Sandbox Code Playgroud)

并查看“Oswald”是否出现在列表中。

从编辑器更改样式表对话框将样式表设置为标签父小部件:

QLabel { color: black; font: 24pt  'Oswald'; }
Run Code Online (Sandbox Code Playgroud)

或者以编程方式在小部件构造函数中:

setStyleSheet("QLabel { color: black; font: 24pt  'Oswald'; }");
Run Code Online (Sandbox Code Playgroud)

如果在 Unix/X11 平台上,请确保fontconfig已安装。