piątek, 11 czerwca 2010

Przedstawienie rysowania w Qt Jambi.

W tym artykule przedstawię czytelnikowi niezbędne konstrukcje jakie pozwoliły mi utworzyć program demo "rysowanie szachownicy".

1. Wykonaj własny widget

Oczywiście można rysunek wykonać bezpośrednio na powierzchni własnej klasy MainWindow jednak w ten sposób traci się przejrzystość, ponieważ MainWindow musi obsługiwać rysowanie szachownicy. Co więcej gdybyśmy w przyszłości chcieli na ekranie przedstawić kilka szachownic to dla każdej sztuki musielibyśmy pisać na nowo kod w MainWindow. Dodatkowo trwając w tym sposobie nie mielibyśmy możliwości użycia szachownicy w Qt Designerze.

Jak wykonać własny widget?

W tym celu przeczytaj ten artykuł: "Własny widget w Qt Jambi"

2. Implementacja własnego widgetu

W tym zadaniu podstawowym celem jest nadpisanie metody:

protected void paintEvent(QPaintEvent e)

w trakcie działania aplikacji nie musisz jej wywoływać ponieważ tym zajmują się mechanizmy Qt.

3. Aby rysować niezbędne jest narzędzie rysownicze.

painter = new QPainter(this);

4. Jeżeli chcemy, aby narzędzie rysownicze używało antialisingu
Używamy tych instrukcji:

// wobec rysowania, prostych, figur itp
painter.setRenderHint(QPainter.RenderHint.Antialiasing);
// wobec rysowania tekstu
painter.setRenderHint(QPainter.RenderHint.TextAntialiasing);

5. Jeżeli chcemy zmienić kolor jaki używa narzędzie to w tym celu tworzymy pisak, i wstawiamy go do narzędzia.

QPen pen = new QPen(QColor.red);
painter.setPen(pen);

6. Jeżeli chcemy narysować tekst w tym celu dokonujemy takiej instrukcji.

// zarówno x jak i y są typu int, messageLine jest typu String (dla C++ jest typu QString)
painter.drawText(x, y, messageLine1);

7. Jeżeli chcemy narysować prostokąt używamy takiej instrukcji:

// x, y współrzędne
// fieldWidth szerokość
// fieldHeight wysokość
// QColor.black kolor
painter.fillRect(x, y, fieldWidth, fieldHeight, QColor.black)

8. Jeżeli chcemy rysować inne figury zalecam spojrzeć na stronę:
http://doc.qt.nokia.com/4.6/qpainter.html
Metody rysujące rozpoczynają się słowem "draw"

9. Aby narysować szachownice wykonuje się właściwie dwie rzeczy:
1. pierw ustawić tło widgetu na białe
2. narysować czarne kwadraty za pomocą podwójnej pętli

Teraz przeanalizuj kod. Algorytm jest zapisany w języku Java, jednak jest czytalny i łatwo go dostosować do C++.

Brak komentarzy:

Prześlij komentarz