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

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

   
В объектах класса 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

    КонстантаЗначениеОписание
    TextSingleLine0x0100Игнорирует знаки новой строки (знак \n)
    TextDontClip0x0200Гарантирует, что в том случае, если текст будет выступать за пределы, он не будет обрезан
    TextExpandTabs0x0400Замещает знаки табуляции \t равносильным пространством
    TextShowMnemonic0x0800Знак & не будет отображаться, а следующий за ним символ будет подчеркнут и получит клавишу быстрого доступа
    TextWordWrap0x1000Если строка выходит за приделы заданного прямоугольника, она будет перенесена

       
    В листинге строка текста выводится по центру. Результат показан на рис. 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, "Строка текста");

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



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

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