На этом шаге рассмотрим отображение строки.
В объектах класса 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 показом разрыва.