Haskell 容器是否可以在gtk2hs上绘制并具有可见的组件?

Haskell 容器是否可以在gtk2hs上绘制并具有可见的组件?,haskell,gtk,gtk2hs,Haskell,Gtk,Gtk2hs,我想画的背景(像一个矩形或诸如此类),然后让它渲染上面的组件。组件将位于我所画的之上。有办法做到这一点吗 下面是这个概念的一个例子。这仅显示矩形。所以只是需要一些方法来告诉它去渲染组件,太 {-# LANGUAGE PackageImports #-} import Graphics.UI.Gtk import Graphics.UI.Gtk.Gdk.EventM import Graphics.UI.Gtk.Gdk.GC import "mtl" Control.Monad.Trans(li

我想画的背景(像一个矩形或诸如此类),然后让它渲染上面的组件。组件将位于我所画的之上。有办法做到这一点吗

下面是这个概念的一个例子。这仅显示矩形。所以只是需要一些方法来告诉它去渲染组件,太

{-# LANGUAGE PackageImports #-}

import Graphics.UI.Gtk
import Graphics.UI.Gtk.Gdk.EventM
import Graphics.UI.Gtk.Gdk.GC
import "mtl" Control.Monad.Trans(liftIO)

main = do
  initGUI
  window <- windowNew
  window `onDestroy` mainQuit
  windowSetDefaultSize window 800 600
  windowSetPosition window WinPosCenter

  table <- tableNew 3 3 False
  button <- buttonNewWithLabel "Test Button"
  tableAttachDefaults table button 1 2 1 2
  containerAdd window table
  table `on` exposeEvent $ update
  widgetShowAll table

  widgetShowAll window
  mainGUI

update = do
  win <- eventWindow
  liftIO $ do
    gc <- gcNew win
    drawRectangle win gc False 10 10 90 90
  return True
{-#语言包导入}
导入Graphics.UI.Gtk
导入Graphics.UI.Gtk.Gdk.EventM
导入Graphics.UI.Gtk.Gdk.GC
进口“mtl”控制单体转运(liftIO)
main=do
initGUI

窗口这不是gtk2hs特有的。根据需要,您需要在更新处理程序中
返回False
,以便以后也调用其他处理程序


在示例中更改此选项时,按钮将覆盖整个窗口,因此矩形将隐藏。但是,例如,使用
tableMethodogeneous table True
可以获得所需的效果。

这不是gtk2hs所特有的。根据需要,您需要在更新处理程序中
返回False
,以便以后也调用其他处理程序

在示例中更改此选项时,按钮将覆盖整个窗口,因此矩形将隐藏。但是,例如,使用
tableMethodogeneous table True
可以获得所需的效果