Михаиллл
1 января 2019 г. 23:25

Как изменить размер шрифта и шрифт при печати

qt, font, print, шрифт, Печать

Здравствуйте.
Скажите пожалуйста, как изменть шрифт и его размер при печати.
Пробовал так, не работает:

  1. void MainWindow::PrintDocument(QString &TextForPrint) //PrintDocument
  2. {
  3. QPrinter MyPrinter;
  4. QPrintDialog *PrinterDialog = new QPrintDialog(&MyPrinter);
  5. PrinterDialog->setWindowTitle("Печать");
  6. QFont FontForPrint;
  7. FontForPrint.setPointSize(22);
  8. //PrinterDialog->setFont(FontForPrint);
  9. if (PrinterDialog->exec())
  10. {
  11. QPainter MyPainter;
  12. MyPainter.begin(&MyPrinter);
  13. MyPainter.drawText(100, 100, 400, 400, Qt::AlignLeft|Qt::AlignTop, TextForPrint);
  14. MyPainter.setFont(FontForPrint);
  15. MyPainter.end();
  16. }
  17. }
2

Вам это нравится? Поделитесь в социальных сетях!

1
Evgenii Legotckoi
  • 3 января 2019 г. 15:51
  • (ред.)
  • Ответ был помечен как решение.

Добрый день!

Метод setFamily используется для установки того, какой шрифт использовать. setPoiintSize также используется для установки размера шрифта.

Что касается того, что не работает, так проблема в том, что вы сначала отрисовываете текст, а потом уже меняете его шрифт. Нарушена последовательность вызова методов.

Так должно быть

  1. if (PrinterDialog->exec())
  2. {
  3. QPainter MyPainter;
  4. MyPainter.begin(&MyPrinter);
  5. MyPainter.setFont(FontForPrint);
  6. MyPainter.drawText(100, 100, 400, 400, Qt::AlignLeft|Qt::AlignTop, TextForPrint);
  7. MyPainter.end();
  8. }

    Комментарии

    Только авторизованные пользователи могут публиковать комментарии.
    Пожалуйста, авторизуйтесь или зарегистрируйтесь
    • Последние комментарии
    • Evgenii Legotckoi
      16 апреля 2025 г. 17:08
      Благодарю за отзыв. И вам желаю всяческих успехов!
    • IscanderChe
      12 апреля 2025 г. 17:12
      Добрый день. Спасибо Вам за этот проект и отдельно за ответы на форуме, которые мне очень помогли в некоммерческих пет-проектах. Профессиональным программистом я так и не стал, но узнал мно…
    • AK
      1 апреля 2025 г. 11:41
      Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
    • Evgenii Legotckoi
      9 марта 2025 г. 21:02
      К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
    • VP
      9 марта 2025 г. 16:14
      Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…