Класс QPen

   
На этом шаге рассмотрим класс QPen.

   
Перья и кисти — это основа для программирования графики с использованием библиотеки Qt. Без них не получится вывести даже точку на экран.

   
Перо применяется для рисования контурных линий фигуры. Атрибуты пера — цвет, толщина и стиль. Установить новое перо можно с помощью метода QPainter::setPen(), передав в него объект класса QPen. Можно передавать и предопределенные стили пера, указанные в табл. 1.

Таблица 1. Некоторые значения из перечисления PenStyle пространства имен Qt

КонстантаЗначениеВид (толщина = 4)
NoPen0линии нет
SolidLine1
DashLine2
DotLine3
DashDotLine4
DashDotDotLine5

   
Толщина линии является значением целого типа, которое передается в метод QPen::setWidth(). Если значение равно нулю, то это не означает, что линия будет невидима, а говорит о том, что она должна быть изображена как можно тоньше.

   
Если необходимо, чтобы линия не отображалась вообще, то тогда устанавливается стиль NoPen. Зачем же нужно перо, которое не рисует? Бывают и такие случаи, когда и пустое перо пригодится, например, когда нужно вывести четырехугольник определенного цвета без
контурной линии.

   
Цвет пера задается с помощью метода QPen::setColor(), в который передается объект класса QColor. Следующий пример создает перо красного цвета, толщиной в три пиксела и со стилем "штрих". Объект пера устанавливается в объекте QPainter вызовом метода setPen().

QPainter painter(this);
painter.setPen(QPen(Qt::red, 3, Qt::DashLine));

   
Стили для концов линий пера устанавливаются методом setCapStyle(), в который передается один из флагов Qt::FlatCap (край линии квадратный и проходит через граничную точку), Qt::SquareCap (край квадратный и перекрывает граничную точку на половину ширины линии) или Qt::RoundCap (край закругленный и также покрывает граничную точку линии).


Рис.1. Стили окончания линий

   
Можно устанавливать стили и для переходов одной линии в другую — методом setJoinStyle(), передав в него Qt::MiterJoin (линии продлеваются и соединяются под острым углом), Qt::BevelJoin (пространство между линиями заполняется) или Qt::RoundJoin (угол закругляется). Но эти переходы будут видны только на толстых линиях (рис. 1).


Рис.2. Стили соединения линий

   
На следующем шаге рассмотрим кисть - класс QBrush.

Предыдущий шаг
Содержание
Следующий шаг



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

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