我写了一个Haskell程序,gem install bundler
处理Gtk2Hs
。但当我尝试使用Gtk2
构建我的程序时,GHC抱怨缺少不再存在的函数:
Gtk3
您是否知道• Variable not in scope:
widgetGetSize :: GtkGL.GLDrawingArea -> IO (Integer, Integer)
• Variable not in scope:
renderWithDrawable :: t1 -> Render () -> IO ()
中是否有可替代这些功能的功能?
Gtk3中还有另一种方法可以获得小部件的大小吗?
注意:我仍然可以使用Gtk2构建我的程序,但我希望能够完全迁移到Gtk3
答案 0 :(得分:0)
GtkGLArea - 使用OpenGL自定义绘图的小部件
GtkGLArea是一个允许使用OpenGL绘图的小部件。
GtkGLArea为它创建的窗口设置了自己的GdkGLContext 创建一个自定义GL帧缓冲区,窗口小部件将执行GL渲染 到。它还确保此帧缓冲区是默认GL 渲染时渲染目标。
为了绘制,你必须连接到“渲染”信号,或 子类GtkGLArea并覆盖GtkGLAreaClass.render()虚拟 功能
GtkGLArea小部件确保与GdkGLContext相关联 小部件的绘图区域,并在大小和时保持更新 绘图区域的位置发生变化。
GtkWidget大小
要获取窗口小部件大小,请使用GtkAllocation getters。请注意,GtkWidget具有请求大小方法,但分配的大小可能不同。