ПредишенСледващото

За да започнете да рисувате върху устройството за боя (обикновено една джаджа), ние трябва само да създадете QPainter обект и го предаде на показалеца на устройство. Например:

нищожен MyWidget :: paintEvent (QPaintEvent * събитие)

Можем да се направи с помощта на различни форми QPainter функции вид изготвят ... (). Фигура 8.1 показва най-важните.

Рисуване с помощта qpainter - квартет програмиране 4 GUI с

Фиг. 8.1. Често използвани равенство ... () функции чертожник QPainter.

настройки QPainter да засегнат режима на рисуване. Някои от тях са инсталирани на настройките на устройството, а други се инициализират стойностите по подразбиране. три основни настройки на художника са писалка, четка, и шрифт:

• Писалката се използва за показване прави линии и очертания на форми. Той има цвят, дебелина, ред стил, стил и крайната линия стил връзка линии.

• четка е шаблон, който се използва за запълване на геометрични форми. Тя обикновено е с цвят и стил, но може да бъде и текстура (Pixmap повтаря безкрайно) или цветен градиент.

• Шрифтът се използва за показване на текст. Font има много качества, включително и името и размер.

Тези настройки могат да бъдат променяни по всяко време, използвайки setPen () функции, setBrush () и setFont (), призовава за Q-pen обекти, QBrush или QFont.

Рисуване с помощта qpainter - квартет програмиране 4 GUI с

Фиг. 8.2. Стилове в крайна линии и линии на стилове за връзка.

Фиг. 8.3. Писалка стилове.

Рисуване с помощта qpainter - квартет програмиране 4 GUI с

Фиг. 8.4. Определена в Qt стилове четка.


Фиг. 8.5. Примери на геометрични форми.

Нека да разгледаме някои примери. По-долу е кодът за съставяне на елипсата е показано на фиг. 8.5 (а):

painter.setPen (Q-pen (Qt :: черен, 12, Qt :: DashDotLine, Qt :: RoundCap));

painter.drawEllipse (80, 80, 400, 240);

режим повикване setRenderHint () включва изглаждане на линии, показващи необходимостта от използване QPainter краищата на цветове с различна интензивност за намаляване на визуална деформация, която обикновено забележими когато крайните форми представени пиксела. В резултат на това краищата се възприемат по-гладко на платформи и устройства, които поддържат тази функция.

По-долу е кодът за съставяне на сектора на елипса, както е показано на фиг. 8,5 (б):

painter.setPen (Q-pen (Qt :: черен, 15, Qt :: SolidLine, Qt :: RoundCap, Qt :: MiterJoin));

painter.drawPie (80, 80, 400, 240, 60 * 16 270 * 16);

Последните две аргументи drawPie () функции са посочени в sixteenths от градуса.

По-долу кода на програмата за изготвяне на кубичен крива на Безие е показано на фиг. 8.5 (с):

path.cubicTo (200, 80, 320, 80, 480, 320);

Клас QPainterPath може да определи произволно векторни графични форми, свързани една с друга основни графични елементи: прави линии, елипси, полигони, дъги, Безие криви на втория и третия ред и други графични елементи художник верига (художник пътеки). Тези вериги са завършени елементарни рисунки, в смисъл, че всяка цифра или комбинация от форми могат да бъдат представени като поредица от графични елементи.

Верига графични елементи определя контура и областта вътре в очертанията могат да бъдат запълнени с всяка четка. В примера, показан на фиг. 8.5 (в), не сме искали четката, така че само очертанията изготвен.

В три примера по-горе използване вградени четка модели (Qt :: SolidPattern, Qt :: DiagCrossPattern и Qt :: NoBrush). В съвременните приложения, градиент пълнители са популярна алтернатива хомогенна агрегат. Цвят градиенти са базирани на интерполиране на цветовете, осигуряване на плавни преходи между два или повече цвята. Те често се използва за производство на ефекта на триизмерни изображения, като Plastique стил употреби, градиенти на цвета, когато играят бутони QPushButton.

Qt поддържа три вида цветни градиенти: линейни, радиални и заострени. В примера по-таймера на фурната, която се предоставя в следващия раздел, в една джаджа използва комбинация от трите вида градиенти да изглежда изображението реалистично.

Рисуване с помощта qpainter - квартет програмиране 4 GUI с

Фиг. 8.6. QPainter четка с цветни градиенти.

• линейни градиенти, които са определени от две контролни точки и серия от "цветните марки" на линията, свързваща тези точки. Например, линеен градиент на фиг. 8.6 създаден с помощта на следния код:

QLinearGradient градиент (50, 100, 300, 350);

Попитахме три цвята в три различни позиции между двете контролни точки. Позициите се представят като числа с плаваща запетая между 0 и 1, където 0 отговаря на първата точка за контрол, както и 1 - последно контролно-пропускателен пункт. Цветът се интерполира между тези позиции.

• Радиални градиенти се определят от точката на центъра (XC. Yc), радиус г и точка на фокус (XF. Yf), която допълва етикети цвят. Точката на център и радиусът на кръга се определя. Промяната в цвета във всички посоки от фокусна точка, която може да съвпада с централната точка, или може да бъде всяка друга точка в рамките на окръжност.

• конични градиенти се определят от точката на центъра (XC. Yc) и ъгъла. Цветовете се разпространяват около една централна точка движение като часовете втора употреба.

Досега говорихме за определяне на шрифта писалка, четка и художник. QPainter има и други настройки, които да повлияят на начина на съставяне на фигури и текст:

• Четка фона (фон четка) се използва за запълване на фона на геометрични фигури (т.е., по шарката на четка), текст или Pixmap когато като режим на фона на дисплея е настроен на Qt :: OpaqueMode (непрозрачна режим) (режим по подразбиране е Qt :: TransparentMode - прозрачен).

• начална точка на четка (четка произход) определя началната точка дисплей модел четка, като често се използва горния ляв ъгъл точка на приспособлението.

• граници рисуване площ (клип област) определяне рисунка зона на устройството. изготвяне операции, които излизат извън рамките на областта, се игнорират.

• изобразителна площ, прозорецът и матрица универсален трансформация (Прозорецът, прозорец и световен matfix) определи метод трансфер QPainter логически координати на физически координати на устройството за рисуване. По подразбиране системата на логически и физически координати са идентични. Координатни системи са разгледани в следващия раздел.

• състав режим (Режим състав) определя начина на взаимодействие на нови изходни пиксела с пикселите, които вече присъстват върху устройството за изтегляне. По подразбиране е «източник над» режим, където новите пикселите са начертани върху съществуващите. Този режим се поддържа само определени устройства, и това се счита за по-късно в тази глава.

Във всеки един момент може да се спаси в стека на текущото състояние на художника, наричайки спасяване функция (), и да го възстановите по-късно, като се обадите да се възстанови функцията (). Това може да бъде полезно, ако искате временно да промените някои настройки художник и параметри, а след това ще ги върна на предишните си стойности, както ще видим в следващата секция.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!