Отображение строки

   
На этом шаге рассмотрим отображение строки.

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

  • drawText(int x, int y, const QString& str) отображает текст str. Координату левого края текста задает параметр x, а параметр y указывает координату базовой линии.   
    В листинге приведена реализация вывода на экран строки текста, результат показан на рис. 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, "Строка текста");

       
    Файлы приложения можно взять Предыдущий шаг
    Содержание
    Следующий шаг



  • Вы можете оставить комментарий, или Трекбэк с вашего сайта.

    Оставить комментарий