Шаг 197.
Библиотека Qt.
Класс QBrush

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

    Кисть используется для заполнения непрерывных контуров, таких как прямоугольники, эллипсы и многоугольники. Класс кисти QBrush определен в заголовочном файле QBrush.

    Кисть задается двумя параметрами — цветом и образцом заливки.

    Установить кисть можно методом QPainter::setBrush(), передав в него объект класса QBrush или один из предопределенных шаблонов, указанных в табл. 1. Если заполнение не нужно, то в метод QPainter::setBrush() следует передать значение NoBrush.

Таблица 1. Перечисление ВrushStyle пространства имен Qt
Константа
Значение
Вид
NoBrush
0
нет заполнения
SolidPattern
1
Dense1Pattern
2
Dense2Pattern
3
Dense3Pattern
4
Dense4Pattern
5
Dense5Pattern
6
Dense6Pattern
7
Dense7Pattern
8
HorPattern
9
VerPattern
10
CrossPattern
11
BDiagPattern
12
FDiagPattern
13
DiagCrossPattern
14
LinearGradientPattern
15
RadialGradientPattern
16
ConicalGradientPattern
17

    Следующие строки устанавливают красную кисть с горизонтальной штриховкой:

QPainter painter(this);
painter.setBrush(QBrush(Qt::red, Qt::HorPattern));

    Если в табл. 1 не нашлось подходящей кисти, то можно создать свою собственную с помощью стиля TexturePattern. Для использования этого стиля нужно передать в метод setTexture() растровое изображение. Также можно использовать растровое изображение при создании кисти:

QPainter        painter(this);
QPixmap pix(":/images/Koala.jpg");
painter.setBrush(QBrush(Qt::black, pix));
painter.drawEllipse(0, 0, 400, 250);

    Пример, показанный на рис. 1, демонстрирует получившийся результат.


Рис.1. Заполнение эллипса растровым изображением

    Файлы приложения можно взять здесь.

    На следующем шаге рассмотрим градиенты.




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