我想用Qt开启图形库,但我找不到任何文档。我只是想让GUI连接到Qt并使用Cairo在Qt窗口中绘制图形。

感谢。

有帮助吗?

解决方案

cairo的最新版本通过允许绘制到使用 cairo_qt_surface_create(QPainter * painter)创建的表面来支持Qt:您可以检查相关的头文件这里。没有文档,因为此功能仍然是实验性的并且默认情况下已禁用(您应该自己编译cairo,使用 configure --enable-qt 显式启用Qt支持。

其他提示

Qt的Paint System 是一个非常好的绘图库,< strong>是基于矢量。它已经存在了。如果您选择Qt作为GUI工具包,它将变得更容易。

警告 :这不是您正在寻找的答案。

你确定要这个吗?到底是什么?这是关于写一个基于开罗的 QPaintDevice 吗? Qt有自己的图形基元,Cairo也是如此。我能看到的唯一原因是你不希望Qt的重层干扰你的系统(嵌入式?)。这就像你正在尝试使用开罗的DirectFB后端 - 但是之后就有像Qt-on-DirectFB这样的东西。然而,请注意这样的实现是昂贵的,并且如果没有自己的夸克集,例如库互操作问题,从这个基于开罗的上下文打印等,则不是免费的。我建议你定期搜索谷歌以确定这些努力是否是/在尝试相同的事情之前,我们一直在进行并权衡利弊。

可以通过这种肮脏的方式来实现:

  1. 创建一个cairo图像表面,在该表面上绘制。
  2. 调用cairo_image_surface_get_data()获取像素。
  3. 将图像复制到Qt小部件。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top