Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Qt
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
MetMark
0 / 0 / 0
Регистрация: 04.05.2018
Сообщений: 199
1

Кастомный шрифт в QLabel

10.07.2019, 18:19. Просмотров 2526. Ответов 16
Метки нет (Все метки)

Добрый день. Можете привести пример, как поставить какой-нибудь шрифт И свой шрифт (Который ранее скачивал из интернета и установил себе на ОС) в QLabel
C++ (Qt)
1
ptrLabel->setFont(QFont()); //А как дальше не знаю
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2019, 18:19
Ответы с готовыми решениями:

Подгон в в qlabel
Как подогнать размер текста в qlabel под размер самого qlabel?

Qt с++ Очистка QLabel
ребята помогите!!! При каждом нажатии кнопки надпись(цифры) накладывается на lb ( lb->setText(" ") ...

Нажатие на QLabel
Даров. Есть вопросик : Есть один большой QLabel и на нем куча мелких, все это крепится на стакдт...

Перерисовка QLabel
Добрый вечер. При изменении размера окна нужно чтобы картинка на Label изменилась, т.е....

Qlabel + calendarWidget();
Добрый день. Как по событию clicked() qlabel отобразить calendarWidget()? заранее спасибо. ...

16
kitsoRik
350 / 232 / 101
Регистрация: 30.10.2018
Сообщений: 1,070
10.07.2019, 18:40 2
Лучший ответ Сообщение было отмечено 0x90h как решение

Решение

MetMark,
C++ (Qt)
1
2
3
int id = QFontDatabase::addApplicationFont(":/fonts/monospace.ttf");
QString family = QFontDatabase::applicationFontFamilies(id).at(0);
QFont monospace(family);
естественно этот шрифт должен быть в ресурсах
0
MetMark
0 / 0 / 0
Регистрация: 04.05.2018
Сообщений: 199
10.07.2019, 19:07  [ТС] 3
Цитата Сообщение от kitsoRik Посмотреть сообщение
QString family = QFontDatabase::applicationFontFamilies(id).at(0);
QFont monospace(family);
Не понял что значат эти строки
0
kitsoRik
350 / 232 / 101
Регистрация: 30.10.2018
Сообщений: 1,070
10.07.2019, 20:00 4
Цитата Сообщение от MetMark Посмотреть сообщение
Не понял что значат эти строки
тогда тебе рано еще загружать кастомные шрифты
0
10.07.2019, 20:00
MetMark
0 / 0 / 0
Регистрация: 04.05.2018
Сообщений: 199
10.07.2019, 20:07  [ТС] 5
kitsoRik, Хах, спасибо за подсказку... Если вы рассчитывали, что я знаю что это обозначает, тогда бы я наверное не спросил, а использовал в своем проекте...

kitsoRik,
C++ (Qt)
1
2
3
int id = QFontDatabase::addApplicationFont(":/fonts/font.ttf"); //путь к шрифту
QString family = QFontDatabase::applicationFontFamilies(id).at(0); //имя шрифта
QFont f(family);  // QFont c вашим шрифтом
Вот так вот надо объяснять...
0
kitsoRik
350 / 232 / 101
Регистрация: 30.10.2018
Сообщений: 1,070
10.07.2019, 20:24 6
Цитата Сообщение от MetMark Посмотреть сообщение
Если вы рассчитывали, что я знаю что это обозначает
я уверен почти на 100% что ты не пишешь код, а просто складываешь из уже готового.

Ведь то что есть в этом фрагменте, это можно понять по названию методов, к примеру, статический метод класса QFontDataBase, называется addApplicationFont, что за правилами раздела, будет add Application Font, что в переводе - добавить шрифт приложения, дале аналогично идет метод с названиям applicationFontFamilies, что в переводе - семества шрифтов приложения, где мы достаем семейство из выше указаного идентифицатора, после чего достаем первый элемент

Цитата Сообщение от MetMark Посмотреть сообщение
Вот так вот надо объяснять...
Вот как надо объяснять.

Цитата Сообщение от MetMark Посмотреть сообщение
//путь к шрифту
путь к шрифту находится именно в параметрах метода, этого мало что бы объяснить строку.
0
GeXaR
4 / 2 / 2
Регистрация: 06.12.2018
Сообщений: 19
10.07.2019, 21:52 7
попробуй что-то вроде
ptrLabel->setStyleSheet("QLabel{ font: <название шрифта>;}");

или создай файл ресурсов .CSS, а в нем что угодно меняй
0
MetMark
0 / 0 / 0
Регистрация: 04.05.2018
Сообщений: 199
10.07.2019, 22:00  [ТС] 8
GeXaR, Попробовал, не помогло... Пошел гуглить про CSS

Цитата Сообщение от kitsoRik Посмотреть сообщение
я уверен почти на 100% что ты не пишешь код, а просто складываешь из уже готового.
По-моему в начале все так делаю: читают статьи, смотрят примеры из книг, а потом пишут свое и накопленные знания используются.
0
alexu_007
198 / 210 / 40
Регистрация: 29.05.2015
Сообщений: 1,312
11.07.2019, 07:06 9
Цитата Сообщение от MetMark Посмотреть сообщение
По-моему в начале все так делаю: читают статьи, смотрят примеры из книг, а потом пишут свое и накопленные знания используются.
Первый же гугл с вопросом "Qt установить новый шрифт" даёт несколько ответов(аналогичных ответу MetMark) на твой вопрос. Можно было хотя-бы скопировать этот код, попробовать его в своём приложении, а потом уже задавать вопросы - как это работает - хотя и самому догадаться несложно.

Возникает встречный вопрос - а ты случаем не тролль? А тебя тута кормят...
0
kitsoRik
350 / 232 / 101
Регистрация: 30.10.2018
Сообщений: 1,070
11.07.2019, 08:06 10
Цитата Сообщение от MetMark Посмотреть сообщение
в начале все так делаю
не все, а только человек который хочет все и сразу, почему бы не учить постепенно? Так и вопросов будет меньше
0
MetMark
0 / 0 / 0
Регистрация: 04.05.2018
Сообщений: 199
11.07.2019, 08:19  [ТС] 11
GeXaR, Для всего приложения шрифт установить получилось, а поменять его размер не получается, как только не пробовал....
0
Анна по жизни
270 / 161 / 60
Регистрация: 13.03.2019
Сообщений: 396
11.07.2019, 12:08 12
Лучший ответ Сообщение было отмечено MetMark как решение

Решение

Цитата Сообщение от MetMark Посмотреть сообщение
Для всего приложения шрифт установить получилось, а поменять его размер не получается, как только не пробовал....
Получаешь QFont приложения. Меняешь у него размер. Устанавливаешь фонт в приложение.
1
MetMark
0 / 0 / 0
Регистрация: 04.05.2018
Сообщений: 199
11.07.2019, 17:10  [ТС] 13
Анна по жизни, Я просто в восторге!!! Все что вы мне советуете все получается!!! Спасибо вам огромное! Я восхищаюсь вами!

Анна по жизни, Еще вопрос
C++ (Qt)
1
2
3
4
5
    int idFont = QFontDatabase::addApplicationFont(":/resourse/fonts/itimCyrillic.otf");
    QString itimCyrillic = QFontDatabase::applicationFontFamilies(idFont).at(0);
    QFont IC(itimCyrillic);
    IC.setPixelSize(16);
    SingleWindow->setFont(IC);
Я в main.cpp написал это. Можно как-нибудь мне для других файлов/окон этого приложения применить шрифт? Ведь IC другие не видят...
0
Анна по жизни
270 / 161 / 60
Регистрация: 13.03.2019
Сообщений: 396
11.07.2019, 17:25 14
Лучший ответ Сообщение было отмечено MetMark как решение

Решение

Цитата Сообщение от MetMark Посмотреть сообщение
Ведь IC другие не видят...
Зато любой виджет может достать этот фонт из файла ресурсов таким же образом, как ты проделал это в main().
Кстати, если пользуешься какими-то шрифтами, которых может не оказаться на другом компе, желательно положить их в файл ресурсов. Единственная проблема - это работает для только для TrueType и OpenType шрифтов. И не у всех шрифтов есть реализация русских букв.
1
MetMark
0 / 0 / 0
Регистрация: 04.05.2018
Сообщений: 199
11.07.2019, 17:30  [ТС] 15
Анна по жизни, Да, в ресурсы добавил и шрифт подходящий выбрал, в этом плане все супер.

Цитата Сообщение от Анна по жизни Посмотреть сообщение
как ты проделал это в main()
А как достать то? Я как только не пробовал сейчас... или мне заново писать вот эти строки:?
C++ (Qt)
1
2
3
    QString itimCyrillic = QFontDatabase::applicationFontFamilies(idFont).at(0);
    QFont IC(itimCyrillic);
    SingleWindow->setFont(IC);
0
Анна по жизни
270 / 161 / 60
Регистрация: 13.03.2019
Сообщений: 396
11.07.2019, 17:33 16
Теперь в конструкторе любого виджета пишешь эти же 4 строчки и устанавливаешь фонт для this.

Добавлено через 59 секунд
C++ (Qt)
1
2
3
4
5
    int idFont = QFontDatabase::addApplicationFont(":/resourse/fonts/itimCyrillic.otf");
    QString itimCyrillic = QFontDatabase::applicationFontFamilies(idFont).at(0);
    QFont IC(itimCyrillic);
    IC.setPixelSize(16);
    this->setFont(IC);
1
MetMark
0 / 0 / 0
Регистрация: 04.05.2018
Сообщений: 199
11.07.2019, 17:59  [ТС] 17
Анна по жизни, Усек. Просто слова не подобрать как я вам благодарен!!!

Анна по жизни, Усе получается, единственное шрифт в названии, к примеру, приложения слева от кнопок "крестик", "развернуть на весь экран", "скрыть" не понимаю как сменить, там он просто так не меняется...
0
11.07.2019, 17:59
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2019, 17:59

QScrollArea и QLabel
Добрый день, можете пожалуйста подсказать какой елемент нужно использовать для вывода текста, но...

Hint на QLabel
Приветствую гуру Qt Собственно вопрос в названии темы - как организовать hint (всплывающую...

Отступы в QLabel
Пытаюсь убрать отступы в qlable-ах то есть выровнять к верхней границе. вот кусок view.cpp файла ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru