QStringList strlistFontName = QFontDatabase::applicationFontFamilies(nFontId);
时间: 2024-10-09 12:08:42 浏览: 27
在Qt中,`QFontDatabase::applicationFontFamilies(nFontId)`这个函数用于获取与给定字体ID关联的应用程序字体家族名。这里`nFontId`通常是从添加新字体(如`QFontDatabase::addApplicationFont()`)返回的ID。示例代码展示了如何操作:
首先,加载一个字体并获取其ID:
```cpp
int fontId = QFontDatabase::addApplicationFont(":/Styles/fontawesome-webfont.ttf");
```
然后,你可以通过传递这个ID来获取可用的字体家族名称列表:
```cpp
QStringList familyNames = QFontDatabase::applicationFontFamilies(fontId);
```
最后,打印这些字体家族名以确认它们已经被成功加载:
```cpp
qDebug() << "Loaded font family names: " << familyNames;
```
这将显示应用中与`fa-webfont.ttf`对应的可用字体名字。
如果你想获取特定字体ID对应的所有字体家族,可以像这样操作:
```cpp
QString fontName = QFontDatabase::applicationFontFamilies(fontId).at(0); // 获取第一个家族名
iconFont = QFont(fontName); // 使用该家族名创建QFont实例
```
相关问题
D:\armtest\serial\mainwindow.cpp:107: error: redeclaration of 'QString str' QString str = QString::number(tempDouble, 'f', 1); ^
这是另一个编译错误,错误信息显示在第107行,错误原因是变量`str`已经被定义过了,不能重复定义。你需要将第107行的定义改为赋值操作,或者将变量名改为一个新的名字。
如果你想保留变量名`str`,可以将第107行的定义改为赋值操作。例如:
```
str = QString::number(tempDouble, 'f', 1);
```
如果你想使用一个新的变量名,可以将变量名改为一个新的名字。例如:
```
QString strNew = QString::number(tempDouble, 'f', 1);
```
void gomd5::on_alldone_ld_clicked() { QStringList FileNameList = QFileDialog::getOpenFileNames(this, tr("请选择需要校验文件"), ".", tr("File(.)")); if(0 == FileNameList.count()) { return; } SetOldPrintInforStyle(); QString Str = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss ") + ui->alldone_ld->text(); ui->filepath_ld->append(QString("<font><b>%1</b></font>").arg(QString("%1、%2:").arg( QString::number(++Index)).arg(Str))); //创建文件夹 QString FilePath = ui->lineEdit->text() + "/ok_update"; DeleteDirectory(FilePath); QDir mdir(FilePath); mdir.mkdir(FilePath); mdir.mkdir(FilePath + "/ok_update");代码中将ini相关处理部分改为json处理流程
在这段代码中,我们可以将ini相关处理部分改为json处理流程。具体来说,可以将ini文件替换为json文件,并使用QJsonDocument、QJsonObject、QJsonArray等类来解析和处理json数据。以下是可能的代码示例:
```
// 读取json文件
QString jsonFilePath = "config.json";
QFile jsonFile(jsonFilePath);
jsonFile.open(QIODevice::ReadOnly | QIODevice::Text);
QByteArray jsonData = jsonFile.readAll();
jsonFile.close();
// 解析json数据
QJsonParseError jsonError;
QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonData, &jsonError);
if (jsonError.error != QJsonParseError::NoError) {
qDebug() << "Json parse error: " << jsonError.errorString();
return;
}
QJsonObject jsonObj = jsonDoc.object();
QStringList FileNameList = QFileDialog::getOpenFileNames(this, tr("请选择需要校验文件"), jsonObj.value("defaultDir").toString(), tr("File(*)"));
if (FileNameList.isEmpty()) {
return;
}
// 创建文件夹
QString FilePath = jsonObj.value("outputDir").toString() + "/ok_update";
DeleteDirectory(FilePath);
QDir mdir(FilePath);
mdir.mkdir(FilePath);
mdir.mkdir(FilePath + "/ok_update");
// 在界面上显示选中的文件路径
SetOldPrintInforStyle();
QString Str = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss ") + ui->alldone_ld->text();
ui->filepath_ld->append(QString("<font><b>%1</b></font>").arg(QString("%1、%2:").arg(QString::number(++Index)).arg(Str)));
```
阅读全文