Russian Qt Forum
Май 03, 2024, 14:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как в Qt тексту задать несколько стилей шрифта?  (Прочитано 4566 раз)
billy4685
Крякер
****
Offline Offline

Сообщений: 306


Просмотр профиля
« : Ноябрь 24, 2014, 10:53 »

Снова вопрос о шрифтах) Как известно шрифт может быть обычным, жирным, курсивным, подчеркнутым. Как в qt к примеру задать шрифт жирный с курсивом?
Нашел задание стилей шрифта через setItalic(bool), setBold(bool), они работают совместно. Но а как к примеру это же сделать через полное задание шрифта? К примеру это вот работает: setFont(QFont("Times New Roman", 14, QFont::Bold)). А хотелось бы вот так: setFont(QFont("Times New Roman", 14, курсив | жирный)). Возможно ли это?
Записан
Johnik
Крякер
****
Offline Offline

Сообщений: 339


Просмотр профиля
« Ответ #1 : Ноябрь 24, 2014, 11:05 »

Код:
QFont::QFont(const QString & family, int pointSize = -1, int weight = -1, bool italic = false)
Записан
billy4685
Крякер
****
Offline Offline

Сообщений: 306


Просмотр профиля
« Ответ #2 : Ноябрь 24, 2014, 16:53 »

увы но мне это не совсем подходит(,  хотелось бы сделать свою функцию void set_styleFont(unsigned style), тогда в нее вместо style, я смог бы к примеру отправлять Italic | Bold для жирного курсива. Ну что-то вроде этого. Ну вот как лучше организовать это, пока не придумал.
Записан
billy4685
Крякер
****
Offline Offline

Сообщений: 306


Просмотр профиля
« Ответ #3 : Ноябрь 24, 2014, 16:56 »

хочется к примеру так как с setAlignment(Qt::Alignment), вместо Qt::Alignment можна вставлять  Qt::AlignCenter | Qt::Bottom. 
Записан
billy4685
Крякер
****
Offline Offline

Сообщений: 306


Просмотр профиля
« Ответ #4 : Декабрь 01, 2014, 16:23 »

Всем спасибо, уже реализовал сам, просто написал функцию, которая принимает название шрифта (QString name), размер (int size) и стиль (unsigned style) (сюда посылаться будут некие из флагов BOLD, ITALIC, ANTIALIAS, ULINE или же их комбинацию через | и).
Далее в функции задаю полученные значения: название шрифта setFamilly(name) и размер setSizePixel(size). Со стилем поступаю следующим образом. Смотрю что приходит в функцию к примеру if (style & BOLD), и задаю соответственный стиль шрифта через: setBold(true), или setItalic(true), или setUnderline(true), или setStyleStrategy(QFont::PreferAntialias). Таким образом послав к примеру вместо стиль в функцию (BOLD | ITALIC), будет выполнено setBold(true) и setItalic(true).
« Последнее редактирование: Декабрь 01, 2014, 16:33 от billy4685 » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.055 секунд. Запросов: 23.