crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> Экспорт шрифтов
SABROG
  опции профиля:
сообщение 7.4.2010, 15:31
Сообщение #11


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Цитата(Litkevich Yuriy @ 7.4.2010, 15:18) *
QSettings settings("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Fonts",

Тут вероятно пригодится WinVersion QSysInfo::windowsVersion () [static], чтобы правильный путь выбрать.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 7.4.2010, 15:44
Сообщение #12


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(SABROG @ 7.4.2010, 19:31) *
Тут вероятно пригодится WinVersion QSysInfo::windowsVersion () [static], чтобы правильный путь выбрать.
угу
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 7.4.2010, 22:09
Сообщение #13


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Как я понял сама Qt имеет имена всех файлов и может их соотнести с семейством:

Q_GLOBAL_STATIC(QFontDatabasePrivate, privateDb) 
...
class QFontDatabasePrivate
{
public:
...
struct ApplicationFont {
        QString fileName;
        QByteArray data;
#if defined(Q_OS_WIN)
        HANDLE handle;
        bool memoryFont;
        QVector<FONTSIGNATURE> signatures;
#elif defined(Q_WS_MAC)
        ATSFontContainerRef handle;
#endif
        QStringList families;
    };
    QVector<ApplicationFont> applicationFonts;

К сожалению QFontDatabasePrivate это не d_ptr. Класс определен в .cpp файле и его include в свою программу влечет за собой вставку ненужного кода, но помимо этого еще ничего не собирается. Хаком добраться до него не получается. Похоже единственный вариант это определить копию интерфейса QFontDatabasePrivate и QFontDatabase в своей программе. Вытащить наружу указатель d и сделать reinterpret_cast на экземпляр класса QFontDatabase. Только делать копии интерфейсов большой гемор.
---
Ложный след, так можно достучаться только до тех файлов, которые сам добавил.

Сообщение отредактировал SABROG - 7.4.2010, 23:04
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V  < 1 2
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


8 чел. читают эту тему (гостей: 8, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 14.1.2025, 17:04