На этом шаге рассмотрим отображение строки.
В объектах класса QPainter методом QPainter::setFont() устанавливаются объекты класса QFont. В классе QPainter имеются 7 различных вариантов метода drawText() для отображения текста установленным шрифтом, наиболее часто используются следующие два:
В листинге приведена реализация вывода на экран строки текста, результат показан на рис. 1.
Рис.1. Отображение строки
QPainter painter(this); painter.setFont(QFont("Times", 25, QFont::Normal)); painter.drawText(40, 60, "Строка текста");
Файлы приложения можно взять табл. 1 шага 35 и табл. 1 (приведенной ниже), с помощью логической операции | (ИЛИ).
Таблица 1. Перечисления языка Си TextFlag пространства имен Qt
Константа | Значение | Описание |
---|---|---|
TextSingleLine | 0x0100 | Игнорирует знаки новой строки (знак \n) |
TextDontClip | 0x0200 | Гарантирует, что в том случае, если текст будет выступать за пределы, он не будет обрезан |
TextExpandTabs | 0x0400 | Замещает знаки табуляции \t равносильным пространством |
TextShowMnemonic | 0x0800 | Знак & не будет отображаться, а следующий за ним символ будет подчеркнут и получит клавишу быстрого доступа |
TextWordWrap | 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, "Строка текста");
Файлы приложения можно взять Предыдущий шаг
Содержание
Следующий шаг