Некоторое время назад, работая над обновлением для программы для верстки фотокниг NovaBook, я столкнулся с необходимостью узнать какой файл шрифта соответсвует тому или иному объекту QFont, дабы не ограничивать польхзователя каким-то ограниченным набором шрифтов.
Увы, но «родных» для Qt средств для работы с шрифтами пока что нет. Причины, как я думаю — сильная платформо-зависимость в этом вопросе.
К счастью, на данный момент программа работает только для Windows. Прибегнув к помощи коллективного разума на форумах crossplatform.ru, было получено такое решение данного вопроса:
QSettings settings("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Fonts", QSettings::NativeFormat); foreach(QString s, settings.allKeys()) { qDebug() << "Font name:" << s << "\t\tFont file:" << settings.value(s).toString(); }
Как видно из листинга выше, этот код будет работать на WinNT и выше, т.к. сам путь настроек зависит от версии системы. Решение проблемы кроется в использовании QSysInfo и правильной обработки результатов.
WinVersion QSysInfo::windowsVersion () [static]
Спасибо тов. Litkevich Yuriy и SABROG за предоставленные идеи и поиск подобных приложений.
Comments
осталось протестировать, как это будет работать в реальности.
жду обновленной сборки.