在 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 中直接使用这个字体。如果遇到问题,通常是因为字体没有正确加载或者使用了错误的字体名称。