Russian Qt Forum

Qt => Вопросы новичков => Тема начата: billy4685 от Ноябрь 24, 2014, 09:22



Название: Как проверить верное ли имя шрифта задает пользователь?
Отправлено: billy4685 от Ноябрь 24, 2014, 09:22
Здравствуйте, вот небольшая проблемка возникла. Пишу небольшую для себя ознакомительную програмку, где пользователь сможет вручную вводить название шрифта и его размер, в результате чего  тексту будет устанавливаться этот шрифт. Для установки шрифта использую функцию:

void QFont::setFamily ( const QString & family )

В справке про нее пишут:

Устанавливает имя семейства для данного шрифта. Имя семейства нечувствительно к регистру и может включать имя набора. Название семейства (family) может включать имя фабрики, например, "Helvetica [Cronyx]". Если семейство family доступно более, чем из одного набора и набор не определен, то выбирается произвольный набор. Если семейство недоступно, то будет использован алгоритм поиска соответствующего шрифта.

И тут я подумал, а если вдруг пользователь случайно введет имя несуществующего шрифта, текст в таком случаи не изменит свой вид. Но хотелось как-то проверить это в коде, мол если шрифта нет в наборе, чтобы выводилось сообщение о неверном вводе шрифта. Вот только не знаю как это проверить? может можно как-то получить список существующих шрифтов? была бы функция QFont::setFamily ( const QString & family ) не void, а к примеру int или bool, проблем бы не возникло. Может кто-то знает как это проверить?


Название: Re: Как проверить верное ли имя шрифта задает пользователь?
Отправлено: gil9red от Ноябрь 24, 2014, 10:40
может можно как-то получить список существующих шрифтов?

http://qt-project.org/doc/qt-4.8/qfontdatabase.html#families


Название: Re: Как проверить верное ли имя шрифта задает пользователь?
Отправлено: billy4685 от Ноябрь 24, 2014, 10:56
может можно как-то получить список существующих шрифтов?

http://qt-project.org/doc/qt-4.8/qfontdatabase.html#families
спасибо уже нашел)) но пока сомнения по поводу того, как проверить есть ли введенный шрифт там, так как пользователь  может вводить с разными регистрами символов. Или в этом списке хранятся названия с разными регистрами? типа: Times New Roman, times new roman, TIMES NEW ROMAN, а может быть и вообще TimesNewRoman. Сейчас выведу себе в файл этот список и узнаю.