Вопрос

Я хочу использовать графическую библиотеку Cairo с Qt, но не могу найти никакой документации.Я просто хочу создать графический интерфейс Qt и использовать Cairo для рисования графики в окне Qt.

Спасибо.

Это было полезно?

Решение

Последняя версия cairo поддерживает Qt, позволяя рисовать на поверхности, созданной с помощью cairo_qt_surface_create(QPainter *painter):вы можете проверить соответствующий файл заголовка здесь.Документации нет, поскольку эта функция все еще является экспериментальной и по умолчанию отключена (вам следует скомпилировать cairo самостоятельно, явно включив поддержку Qt с помощью configure --enable-qt.

Другие советы

Система рисования Qt это очень хорошая библиотека рисования и является на векторной основе.И оно уже здесь.Если вы выберете Qt в качестве инструментария для графического пользовательского интерфейса, все станет еще проще.

Предостережение:Это не тот ответ, который вы ищете.

Вы уверены, что хотите этого?С какой целью?Речь идет о написании QPaintDevice на базе Каира?В Qt реализованы собственные графические примитивы, как и в Cairo.Единственная причина, которую я вижу, заключается в том, что вы не хотите, чтобы тяжелый уровень Qt мешал вашей системе (встроенной?).Это похоже на то, что вы пытаетесь использовать серверную часть DirectFB Cairo, но есть такие вещи, как Qt-on-DirectFB.Однако обратите внимание, что такая реализация является дорогостоящей и платной без собственного набора кварков, таких как проблемы взаимодействия библиотек, печать из этого контекста на основе Каира и т. д.Я бы посоветовал вам регулярно искать в Google, чтобы выяснить, предпринимались ли/когда-либо такие усилия, и очень тщательно взвесить все за и против, прежде чем даже пытаться сделать то же самое.

Этого можно добиться таким грязным способом:

  1. Создайте поверхность изображения Каира и нарисуйте на этой поверхности.
  2. Вызовите cairo_image_surface_get_data(), чтобы получить пиксели.
  3. Скопируйте изображение в виджет Qt.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top