На этом шаге рассмотрим отображение строки.
В объектах класса QPainter методом QPainter::setFont() устанавливаются объекты класса QFont. В классе QPainter имеются 7 различных вариантов метода drawText() для отображения текста установленным шрифтом, наиболее часто используются следующие два:
В листинге приведена реализация вывода на экран строки текста, результат показан на рис. 1.

Рис.1. Отображение строки
QPainter painter(this);
painter.setFont(QFont("Times", 25, QFont::Normal));
painter.drawText(40, 60, "Строка текста"); Файлы приложения можно взять здесь.
В листинге приведена реализация вывода на экран строки текста, результат показан на рис. 2.

Рис.2. Отображение строки с тенью
QPainter painter(this);
painter.setFont(QFont("Times", 25, QFont::Bold));
QPoint p1(20,50),p2(23,53);
//вывод строки черным цветом в позиции p1
painter.drawText(p1, "Строка текста");
QPen pen(Qt::green);
painter.setPen(pen);
//вывод строки зеленым цветом в позиции p2
painter.drawText(p2, "Строка текста"); Файлы приложения можно взять здесь.
| 0x0100 | Игнорирует знаки новой строки (знак \n) | |
| 0x0200 | Гарантирует, что в том случае, если текст будет выступать за пределы, он не будет обрезан | |
| 0x0400 | Замещает знаки табуляции \t равносильным пространством | |
| 0x0800 | Знак & не будет отображаться, а следующий за ним символ будет подчеркнут и получит клавишу быстрого доступа | |
| 0x1000 | Если строка выходит за приделы заданного прямоугольника, она будет перенесена |
В листинге строка текста выводится по центру. Результат показан на рис. 3.

Рис.3. Отображение строки в прямоугольной области
Выводимая строка не помещается полностью в прямоугольной области, задаваемой переменной r, поэтому осуществляется переход на новую строку с помощью флага TextWordWrap. Метод drawRect() вызывается для отображения границ прямоугольной области.
QPainter painter(this);
QRect r = QRect(0, 0, 150, 200);
painter.setFont(QFont("Times", 25, QFont::Normal));
painter.drawRect(r);
painter.drawText(r, Qt::AlignCenter | Qt::TextWordWrap, "Строка текста");Файлы приложения можно взять здесь.
На следующем шаге рассмотрим отображение строки c показом разрыва.