【问题标题】:Gtk2Hs : Missing functions when migrating from Gtk2 to Gtk3Gtk2Hs:从 Gtk2 迁移到 Gtk3 时缺少功能
【发布时间】:2017-07-04 22:37:31
【问题描述】:

我用Gtk2Hs 编写了一个Haskell 程序来处理Gtk2。但是当我尝试使用Gtk3 构建我的程序时,GHC 抱怨缺少不再存在的函数:

• Variable not in scope:
    widgetGetSize :: GtkGL.GLDrawingArea -> IO (Integer, Integer)

• Variable not in scope:
    renderWithDrawable :: t1 -> Render () -> IO ()

您知道Gtk3 中是否有可以替代这些功能的功能吗?

Gtk3 中还有其他方法可以获取小部件的大小吗?


注意:我仍然可以使用 Gtk2 构建我的程序,但我希望能够完全迁移到 Gtk3

【问题讨论】:

    标签: haskell gtk3 gtk2hs


    【解决方案1】:

    GtkGLArea — 使用 OpenGL 进行自定义绘图的小部件

    API: ( C ) ( Vala )

    GtkGLArea 是一个允许使用 OpenGL 进行绘图的小部件。

    GtkGLArea 为它创建的窗口设置自己的 GdkGLContext,并且 创建一个自定义 GL 帧缓冲区,小部件将执行 GL 渲染 上。它还确保此帧缓冲区是默认的 GL 渲染时渲染目标。

    为了绘图,您必须连接到“渲染”信号,或者 子类 GtkGLArea 并覆盖 GtkGLAreaClass.render() virtual 功能。

    GtkGLArea 小部件确保 GdkGLContext 与 小部件的绘图区域,并且在大小和 绘图区域的位置发生变化。

    GtkWidget 大小

    要获取小部件大小,请使用 GtkAllocation getter。请注意,GtkWidget 具有请求大小方法,但分配的大小可能不同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-13
      • 2021-02-05
      相关资源
      最近更新 更多