Rajz segítségével qpainter - qt 4 gui programozás

Rajzolás megkezdéséhez a festék eszköz (jellemzően a widgetet), akkor hozzon létre egy QPainter objektumot, és átadja azt az eszközt mutató. Például:

void MyWidget :: paintEvent (QPaintEvent * esemény)

Tudjuk felhívni a különböző formák segítségével QPainter funkciók fajta felhívni ... (). A 8.1 ábra mutatja a legfontosabbakat.

Rajz segítségével qpainter - qt 4 gui programozás

Ábra. 8.1. A gyakran használt döntetlen ... () függvények előadója QPainter.

QPainter beállításai hatással vannak a rajz módot. Néhány ezek közül a készülékre telepített beállításokat, és mások inicializálni az alapértelmezett értékeket. A három fő festő beállítások a toll, ecset, és font:

• A stylus megjelenítésére egyenes vonalak és felvázolja a formák. Ez a szín, vastagság, vonal stílus, stílus és vonallezárást csatlakozó vezetékeket.

• kefe egy sablont használunk, hogy kitöltse a geometriai formák. Ez általában egy színt és stílust, de lehet egy textúra (bittérképes ismételt végtelenül) vagy színátmenet.

• A használt betűtípus a szöveg megjelenítésére. Betűtípus számos attribútumok, beleértve a nevét és méretét.

Ezeket a beállításokat bármikor módosítható a setPen () függvényekkel, setBrush () és setFont (), felhív QPen tárgyak, QBrush vagy QFont.

Rajz segítségével qpainter - qt 4 gui programozás

Ábra. 8.2. Stílusok véget vonalak és csatlakozó stílusokat.

Ábra. 8.3. Pen stílus.

Rajz segítségével qpainter - qt 4 gui programozás

Ábra. 8.4. Meghatározott Qt kefe stílusok.


Ábra. 8.5. Példák a geometriai formák.

Nézzünk néhány példát. Alul van a kód rajz az ellipszis ábrán látható. 8.5 (a):

painter.setPen (QPen (Qt :: fekete, 12, Qt :: DashDotLine, Qt :: RoundCap));

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

setRenderHint () hívás üzemmód magában simítását vonalak jelzik annak szükségességét, hogy QPainter szélei színek változó intenzitással, hogy csökkentse a vizuális torzítás, amely általában észrevehető, ha peremalakokat képviselt pixel. Ennek eredményeként, a szélek tartják simább platformok és eszközök, amelyek támogatják ezt a funkciót.

Alul van a kód rajz az ágazat ellipszis ábrán látható. 8.5 (b):

painter.setPen (QPen (Qt :: fekete, 15, Qt :: SolidLine, Qt :: RoundCap, Qt :: MiterJoin));

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

Az utolsó két érv drawPie () függvények meghatározott sixteenths fokot.

Az alábbiakban a programkód rajz harmadfokú Bezier görbével. 8,5 (c):

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

Osztályú QPainterPath meghatározhatja tetszőleges vektorgrafikus alakzatok, egymáshoz csatlakoztatva alapvető grafikai elemek: egyenes vonalak, ellipszisek, sokszögek, íveket, Bezier görbéket a második és a harmadik rend és egyéb grafikus elemek festő-lánc (festő utak). Az ilyen láncok fejezte be az általános rajzok, abban az értelemben, hogy minden szám vagy kombinált formájú lehet reprezentálni egy sor grafikai elemekkel.

Lánc grafikai elemek a kontúrt, és a területen belül a vázlatot lehet tölteni bármilyen ecsettel. A bemutatott példában látható. 8.5 (c), mi nem kérni az ecset, így csak a vázlattal.

A három fenti példák használja a beépített ecset mintázatok (Qt :: SolidPattern, Qt :: DiagCrossPattern és Qt :: NoBrush). Modern alkalmazásoknál, gradiens töltőanyagok egy népszerű alternatív homogén aggregátum. Színátmenetek alapulnak szín interpoláció, amely sima átmenet a két vagy több színben. Gyakran használják, hogy a hatást a háromdimenziós képek, például Plastique stílus a színátmenetek szín, ha játszik QPushButton gomb.

Qt támogatja háromféle színátmenetek: lineáris, sugár és kúpos. A példában a sütő időzítő, amely biztosítja a következő részben, az egyik modul kombinációját használja mindhárom színátmenetek fénykép meg reális.

Rajz segítségével qpainter - qt 4 gui programozás

Ábra. 8.6. QPainter kefe színátmenetek.

• Lineáris színátmenetek által meghatározott két ellenőrzési pontot és egy sor „színfoltok” a vonalon összekötő ezeket a pontokat. Például, lineáris gradiens látható. 8.6 létre a következő kódot:

QLinearGradient gradiens (50, 100, 300, 350);

Megkérdeztük a három szín három különböző helyzetben a két ellenőrző pontokon. A pozíciók vannak ábrázolva lebegőpontos számok 0 és 1 közötti, ahol a 0 érték felel meg az első ellenőrző pont, és 1 - utolsó ellenőrzőpont. A szín interpolált ezen pozíciók között.

• Körkörös színátmenet által meghatározott középpont (xc. Yc), sugara r és a fókuszpont (xf. Yf), amely kiegészíti a színes címkék. A középpont és a kör sugarát határozzuk meg. A színváltozás minden irányban a fókuszpont, amely egybeesik a középpont, vagy lehet bármely más pontján körön belül.

• Kúpos színátmenetek által meghatározott középpont (xc. Yc) és a szög. A színek elterjedt egy középpont körül mozgás, mint a használt óra.

Eddig már beszéltünk beállításával toll, ecset és festő font. QPainter van más beállításokat, amelyek befolyásolják az utat a rajz formák, szöveg:

• Kenje meg a háttér (háttér kefe) feltöltésére használható a háttérben geometriai formák (azaz a kefe minta), szöveges vagy bittérképes amikor a háttérben megjelenítési mód van beállítva, hogy a Qt :: OpaqueMode (nem transzparens mód) (alapértelmezett mód Qt :: TransparentMode - átlátszó).

• kiindulási pont ecset (kefe eredetű) meghatározza a kezdőpont kijelző mintát ecsettel, mint egy általánosan használt bal felső sarokban pont a widget.

• határokat rajzterületet (clip régió) meghatározzuk a rajz területén a készüléket. rajzműveletek, amelyek túlmutatnak a területen, figyelmen kívül hagyja.

• megjelenítési területen, az ablak és az egyetemes transzformációs mátrix (ablakon, ablak és a világ matfix) meghatározza az átviteli módot QPainter logikai koordinátákat fizikai koordinátáit a rajz eszköz. Alapértelmezésben a rendszer logikai és fizikai koordinátái megegyeznek. Koordináta rendszerek tárgyalását a következő részben.

• Mode készítmény (összetétel mód) meghatározza a kölcsönhatás módja az új kiadási pixel a pixel már jelen lévő rajz eszköz. Az alapértelmezett a «forrás felett» mód, ahol az új képpontokat rajzolt a tetején a meglévőket. Ez az üzemmód csak akkor támogatott speciális eszközöket, és úgy ítélték meg később ebben a fejezetben.

Egy adott időben meg tudjuk menteni a verem aktuális állapotáról, a festő, amelyben Save () függvényt, és visszaállíthatja hívja helyreállítása () függvényt. Ez akkor lehet hasznos, ha azt szeretné, hogy ideiglenesen változtatni néhány festő beállításokat és paramétereket, majd vissza őket a korábbi értékeket, mint látni fogjuk a következő fejezetben.

Kapcsolódó cikkek