Frage

Ich möchte die Cairo-Grafikbibliothek mit Qt verwenden, kann aber keine Dokumentation finden.Ich möchte nur die GUI mit Qt erstellen und Cairo zum Zeichnen von Grafiken in einem Qt-Fenster verwenden.

Danke.

War es hilfreich?

Lösung

Neue Version von kairo unterstützt Qt, indem auf eine Oberfläche mit cairo_qt_surface_create(QPainter *painter) erstellt ziehen: Sie die entsprechende Header-Datei überprüfen können hier . Es gibt keine Dokumentation, da diese Funktion noch experimentell und standardmäßig deaktiviert ist (Sie sollten kairo selbst kompilieren explizit ermöglicht die Qt-Unterstützung mit configure --enable-qt.

Andere Tipps

Qt-Lackiersystem ist eine sehr gute Zeichnung Bibliothek und < strong> ist Vektor-basierte. Und es ist schon da. Wenn Sie Qt als GUI-Toolkit auswählen, kann es nicht einfacher.

Vorbehalt:Dies wird nicht die Antwort sein, nach der Sie suchen.

Bist du sicher, dass du das willst?Zu welchem ​​Ende?Geht es hier darum, einen zu schreiben? QPaintDevice basierend auf Kairo?Qt hat seine eigenen Grafikprimitive implementiert, ebenso wie Cairo.Der einzige Grund, den ich sehen kann, ist, dass Sie nicht möchten, dass eine schwere Qt-Schicht Ihr System stört (eingebettet?).Es ist, als würden Sie versuchen, das DirectFB-Backend von Kairo zu verwenden – aber dann gibt es noch Dinge wie Qt-on-DirectFB.Beachten Sie jedoch, dass eine solche Implementierung kostspielig und ohne eigene Quarks wie Bibliotheksinterop-Probleme, Drucken aus diesem Kairo-basierten Kontext usw. nicht kostenlos ist.Ich schlage vor, dass Sie eine regelmäßige Google-Suche durchführen, um herauszufinden, ob solche Bemühungen bereits im Gange sind oder jemals unternommen wurden, und die Vor- und Nachteile sorgfältig abwägen, bevor Sie es überhaupt versuchen.

Es kann durch diese schmutzige Art und Weise erreicht werden:

  1. Erstellen Sie eine kairo Bildfläche, auf dieser Oberfläche ziehen.
  2. Anruf cairo_image_surface_get_data (), um die Pixel zu bekommen.
  3. Kopieren Sie das Bild zu einem Qt-Widget.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top