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
可以获得所需的效果