在 Haskell 中 GTK 的 DrawingArea 上绘制文本
我有一个 DrawingArea
,可以使用诸如 drawRectangle
和 drawLine
等基元在其上进行绘制。如何在该区域上绘制文本?我最感兴趣的是快速输出一行文本的东西。
Graphics.UI.Gtk.Gdk.Drawable.layoutLine 似乎是我想要的,但它需要一个 Graphics.Rendering.Pango.Layout.LayoutLine 作为输入。如何构建 LayoutLine
?
还有比这样做更好的选择吗?
谢谢!
I have a DrawingArea
onto which I can draw using primitives such as drawRectangle
and drawLine
. How do I draw text onto that area? I'm most interested in something that quickly outputs a single line of text.
Graphics.UI.Gtk.Gdk.Drawable.layoutLine
seems to be what I want, but it wants a Graphics.Rendering.Pango.Layout.LayoutLine
as input. How do I construct that LayoutLine
?
Are there better alternatives than doing it this way?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我不知道你是否会考虑使用开罗。如果是这样,我认为函数
showText
可能就是您正在寻找的。在写入文本之前,使用 cairo 函数moveTo
移动到特定位置。这是我能制作的最简单的工作示例之一:我发现以下内容是一个很好的指南,尽管它不适用于 Haskell:
I don't know if you would consider using Cairo. If so, I think the function
showText
may be what you are looking for. Use the cairo functionmoveTo
to move to a specific location before writing the text. This is one of the simplest working examples I can produce:I found the following to be an excellent guide, even though it was not for Haskell:
http://zetcode.com/tutorials/cairographicstutorial/cairotext/
我已经找到了用 Pango 来做到这一点的方法。
然后,您可以将这个新创建的布局与
drawLayout
和drawLayoutWithColors
等函数一起使用。I've found the way to do this with Pango.
Then you can use this newly-created layout with functions such as
drawLayout
anddrawLayoutWithColors
.