Russian Qt Forum

Qt => Qt-инструментарий => Тема начата: Гурман от Ноябрь 29, 2016, 21:05



Название: Загрузка шрифта в плагин дизайнера - это вообще возможно?
Отправлено: Гурман от Ноябрь 29, 2016, 21:05
Надо, чтобы плагин использовал для написания текста шрифт из ресурсов приложения. Имя шрифта задаётся в пропертях плагина (поскольку может быть разным при разных сборках). Сигнал записи в проперти принимает такая функция:

Код:
void TLwidget::setFontFileName(const QString &name)
{
    if( name.length() && (name.endsWith( ".otf", Qt::CaseSensitivity::CaseInsensitive ) ||
                          name.endsWith( ".ttf", Qt::CaseSensitivity::CaseInsensitive )) )
    {
        int fid = QFontDatabase::addApplicationFont( ":/resources/"+(fontName = name) );
        //QMessageBox::warning(0, "", ":/resources/"+fontName+" "+QString::number(fid)); //debug
        if( fid >= 0 )
        {
            label.setFont( QFont( QFontDatabase::applicationFontFamilies(fid)[0] ) );
            fontinstalled = true;
        }
    }
}

И глухо при загрузке этого плагина в дизайнер месседж выдаёт fid == -1, то есть шрифт в дизайнере не грузится. Маршрут шрифта в ресурсах правильный. Проверялось на .otf шрифте, который нормальный, рабочий.

Аналогично в соседнем плагине задаётся имя картинки из ресурсов - и эта картинка успешно загружается плагином из ресурса прямо в дизайнере, и отображается на виджете. Именно в дизайнере. А загрузка шрифта почему-то не работает. Причём и работающая картинка, и не работающий шрифт заданы в одном файле ресурсов, маршруты у них одинаковые (поэтому есть уверенность, что ошибки в маршрутах нет).

Не помню, чтобы это было отражено где-либо в документации. Кто-нибудь что-нибудь встречал на эту тему?

PS: В маршрутах и коде всё правильно - собранное приложение работает как требуется, текст отображается тем шрифтом, который подшит в ресурсе и задан в строке проперти. Но в дизайнере увидеть смену шрифта никак не получается.