【发布时间】:2022-07-15 20:35:37
【问题描述】:
我想在用gi-gtk 编写的 GUI 上渲染一个diagram。我尝试使用Diagrams.Backend.Gtk 中的defaultRender 函数,但编译器抱怨:
• Couldn't match expected type ‘gtk-0.15.5:Graphics.UI.Gtk.Types.DrawingArea’
with actual type ‘Gtk.DrawingArea’
NB: ‘Gtk.DrawingArea’
is defined in ‘GI.Gtk.Objects.DrawingArea’
in package ‘gi-gtk-3.0.36’
‘gtk-0.15.5:Graphics.UI.Gtk.Types.DrawingArea’
is defined in ‘Graphics.UI.Gtk.Types’ in package ‘gtk-0.15.5’
• In the first argument of ‘defaultRender’, namely ‘canvas’
在验证了Diagrams.Backend.Gtk 之后,我看到它是用来自 GTk2Hs 的旧 Graphics.UI.Gtk.Types 构建的,这似乎是导致此错误的原因。
有没有类似Diagrams.Backend.Gtk的模块,用GI.Gtk包写的?
您知道将来图表后端是否会使用GI.Gtk 包构建?
【问题讨论】:
-
diagrams-gtk包实际上是需要移植的 just about 100 LOC。也许你这样做并提交 PR 是有意义的。 -
(当然这主要是因为它只不过是
diagrams-cairo的一个薄包装;首先直接使用它可能是有意义的。)