The DrawingArea Widget
The DrawingArea widget is a blank window that gives you the freedom to create any graphic you desire. Along with that freedom comes the responsibility to draw on the widget. When a widget is first shown, or when it is covered and then uncovered again it needs to redraw itself. Most widgets have code to do this, but the DrawingArea does not, allowing you to write your own draw function to determine how the contents of the widget will be drawn. This is done by setting a draw function with a call to the set_draw_func() member function.
GTK uses the Cairo drawing API. With gtkmm, you may use the cairomm C++ API for cairo.
Pomocí Cairo můžete kreslit i velmi složité tvary, ale metody k tomu používané jsou vcelku základní. Cairo poskytuje metody pro kreslení rovných čar, křivek a oblouků (včetně celých kružnic). Tyto základní tvary můžete kombinovat, abyste vytvořili složitější tvary a cesty, které můžete vyplnit plnou barvou, přechody, vzory a dalšími věcmi. Navíc Cairo zvládá komplexní transformace, skládání obrázků a vykreslování vyhlazeného textu.
Ačkoliv Cairo umí vykreslit text, neznamená to, že by mohlo nahradit Pango. Pango je lepší volbou, když potřebujete provádět pokročilejší vykreslování textu, jako je zalamování nebo vypouštění textu. Kreslení textu pomocí Cairo by se mělo dělat je v případě, že je text součástí grafiky.
V této části výukového textu pokryjeme základní kreslicí model Cairo, popíšeme podrobně jednotlivé základní kreslicí prvky (včetně příkladů) a ukážeme si jednoduchou aplikaci, která používá Cairo ke kreslení widgetu s hodinami.
- 16.1. Kreslicí model Cairo
- 16.2. Kreslení rovných čar
- 16.3. Kreslení křivek
- 16.4. Kreslení oblouků a kružnic
- 16.5. Kreslení textu
- 16.6. Kreslení obrázků
- 16.7. Ukázková aplikace: Kreslení hodin pomocí knihovny Cairo