Pergunta

Quero usar a Cairo Graphics Library com QT, mas não consigo encontrar nenhuma documentação. Eu só quero fazer a GUI com QT e usar o Cairo para desenhar gráficos em uma janela QT.

Obrigado.

Foi útil?

Solução

A versão recente do Cairo suporta QT, permitindo desenhar para uma superfície criada com cairo_qt_surface_create(QPainter *painter): Você pode inspecionar o arquivo de cabeçalho relevante aqui. Não há documentação porque esse recurso ainda é experimental e desativado por padrão (você deve compilar o Cairo, permitindo explicitamente o suporte do QT com configure --enable-qt.

Outras dicas

Sistema de pintura de Qt é uma biblioteca de desenho muito boa e é baseado em vetor. E já está lá. Se você escolher o QT como seu kit de ferramentas da GUI, não poderá ficar mais fácil.

Embargo: Esta não será a resposta que você está procurando.

Tem certeza de que quer isso? Para quê? É sobre escrever um QPaintDevice Baseado no Cairo? O QT possui seus próprios gráficos primitivos implementados e o Cairo também. A única razão pela qual posso ver é que você não deseja uma camada pesada de QT interfere no seu sistema (incorporado?). É como se você estivesse tentando usar o back-end DirectFB do Cairo-mas há coisas como QT-on-Directfb. No entanto, observe que essa implementação é cara e não é gratuita sem seu próprio conjunto de quarks, como problemas de interropia da biblioteca, impressão desse contexto baseado no Cairo etc. Sugiro que você faça uma pesquisa regular no Google para descobrir se esses esforços são/ já estava em andamento e pesar os prós e os contras muito fortemente antes mesmo de tentar o mesmo.

Pode ser alcançado por esta maneira suja:

  1. Crie uma superfície da imagem do Cairo, desenhe nessa superfície.
  2. Ligue para Cairo_Image_Surface_Get_Data () para obter os pixels.
  3. Copie a imagem para um widget QT.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top