如何在 Haskell 中使用 Cairo 绘制 X11 Drawable

Posted

技术标签:

【中文标题】如何在 Haskell 中使用 Cairo 绘制 X11 Drawable【英文标题】:How to draw on an X11 Drawable with Cairo in Haskell 【发布时间】:2012-12-15 17:38:30 【问题描述】:

我最近在 Haskell 中进行了 X11 编程的第一步,现在我想使用 Cairo/Pango 绘制文本。我找到了一些 C 教程,看来我需要 create an Xlib surface using cairo_xlib_surface_create()。 Cairo 有一个 Haskell wrapper,但似乎缺少此函数的包装器。 但是,似乎仍然有一种方法可以直接在 X11 窗口上使用 Cairo 绘制,因为表面的文档mentions an Xlib backend。 但我找不到任何进一步的信息。

【问题讨论】:

【参考方案1】:

文档说

请注意,Haskell 绑定不支持所有可能的 cairo 后端,因为它需要相关技术(例如 X11、glitz 等)的绑定,但是可以在外部实现与其他后端的绑定。例如,Gtk2Hs 为 X11(和 Windows 上的 win32)提供了到后端的绑定。

所以看来你必须要么使用 gtk2hs,要么自己 ffi 所需的绑定。

【讨论】:

以上是关于如何在 Haskell 中使用 Cairo 绘制 X11 Drawable的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Cairo 和 Gtk3 在 GtkDrawingArea 中绘制一条线

如何在 Gtkmm DrawingArea 中绘制 cairo_surface_t

gtkmm : 用 cairo 绘制文本

使用 Cairo 绘制杂乱纹理

如何更改灰度图像的 cairo 上下文源颜色

使用 Gtk3 和 Cairo 绘制到 GdkWindow 根窗口