Domanda

Voglio usare la libreria grafica del Cairo con Qt, ma non riesco a trovare alcuna documentazione. Voglio solo creare la GUI con Qt e usare Cairo per disegnare grafica in una finestra di Qt.

Grazie.

È stato utile?

Soluzione

La versione recente di cairo supporta Qt consentendo di disegnare su una superficie creata con cairo_qt_surface_create (pittore QPainter * ): è possibile ispezionare il file di intestazione pertinente qui . Non c'è documentazione perché questa funzione è ancora sperimentale e disabilitata di default (dovresti compilare cairo te stesso abilitando esplicitamente il supporto Qt con configure --enable-qt .

Altri suggerimenti

Qt's Paint System è un'ottima libreria di disegni e < strong> è basato su vettori. Ed è già lì. Se scegli Qt come toolkit della GUI, non potrebbe essere più facile.

Caveat : questa non sarà la risposta che stai cercando.

Sei sicuro di volerlo? A che fine? Si tratta di scrivere un QPaintDevice basato sul Cairo? Qt ha implementato le sue primitive grafiche e anche il Cairo. L'unica ragione per cui riesco a vedere è che non vuoi che un pesante strato di Qt interferisca con il tuo sistema (incorporato?). È come se stessi cercando di utilizzare il back-end DirectFB del Cairo, ma poi ci sono cose come Qt-on-DirectFB. Tuttavia, tieni presente che un'implementazione di questo tipo è costosa e non gratuita senza la sua serie di quark come problemi di interoperabilità con la biblioteca, stampa da questo contesto basato sul Cairo, ecc. Ti suggerirei di fare una ricerca regolare su Google per capire se tali sforzi sono / mai stati in corso e soppesare i pro e contro molto prima ancora di provare lo stesso.

Può essere ottenuto in questo modo sporco:

  1. Crea una superficie immagine cairo, disegna su quella superficie.
  2. Chiama cairo_image_surface_get_data () per ottenere i pixel.
  3. Copia l'immagine su un widget Qt.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top