QFontDatabase::addApplicationFont()添加字体在 QSS使用

在 Qt 中,使用 `QFontDatabase::addApplicationFont()` 添加字体后,你确实可以在 QSS(Qt Style Sheets)中使用这个字体,但需要注意一些细节:

1. 字体添加:
首先,确保你正确地添加了字体:

```cpp
int fontId = QFontDatabase::addApplicationFont("path/to/your/font.ttf");
if (fontId == -1) {
    qWarning() << "Failed to load font";
}
```

2. 获取字体家族名称:
添加字体后,你需要获取字体的家族名称:

```cpp
QString fontFamily = QFontDatabase::applicationFontFamilies(fontId).at(0);
```

3. 在 QSS 中使用:
一旦你有了字体家族名称,你可以在 QSS 中使用它:

```cpp
QString styleSheet = QString("QLabel { font-family: %1; }").arg(fontFamily);
label->setStyleSheet(styleSheet);
```

或者,如果你使用外部 QSS 文件:

```css
QLabel {
    font-family: "Your Font Family Name";
}
```

4. 注意事项:
   - 确保使用正确的字体家族名称。这可能与字体文件的名称不同。
   - 某些操作系统可能需要重新启动应用程序才能识别新添加的字体。
   - 在某些情况下,你可能需要使用字体的确切名称,而不是家族名称。

5. 全局应用:
如果你想在整个应用程序中使用这个字体,可以这样做:

```cpp
QApplication::setFont(QFont(fontFamily));
```

6. 动态加载:
如果你在运行时动态加载字体和 QSS,可能需要重新应用样式表或更新小部件。

7. 跨平台考虑:
确保在所有目标平台上测试字体加载和渲染,因为字体处理可能因操作系统而异。

总的来说,只要字体被正确加载并且你使用了正确的字体名称,你就应该能够在 QSS 中直接使用这个字体。如果遇到问题,通常是因为字体没有正确加载或者使用了错误的字体名称。
 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值