Gtk2Hs:找不到现有功能

时间:2015-02-01 12:32:05

标签: haskell ghc gtk2hs

我遇到Gtk2H问题,我想设置一个cellRenderer可激活。 为此,我需要使用以下内容将其cellMode设置为CellRendererModeActivatable

set render [ cellMode:= CellRendererModeActivatable ]

但是编译时出现以下错误

Not in scope: data constructor `CellRendererModeActivatable'

我在使用GHC 7.4.1的Debian Wheezy上使用Gtk2Hs 0.12.3。

如果构造函数存在(在文档的正确版本中)并且...... 它确实,我查看了Hackage。

我试图明确加载模块

import Graphics.UI.Gtk.ModelView.CellRenderer

但编译错误保持不变。

你知道错误的来源吗?

1 个答案:

答案 0 :(得分:2)

这看起来像旧的Haskell库中的一个错误:来自其源代码

module Graphics.UI.Gtk.ModelView.CellRenderer (
  -- snip
  CellRendererMode,

以上是导出构造函数。较新的版本:

module Graphics.UI.Gtk.ModelView.CellRenderer (
  -- snip
  CellRendererMode(..),

您可以尝试将Haskell库更新为更新版本。那应该解决它。


<强>替代即可。即使在旧版本中,该类型也有Enum个实例,因此快速&amp;脏的解决方法,您可以使用toEnum 1 :: CellRendererMode 而不是构造函数。

data CellRendererMode = CellRendererModeInert         -- 0
                      | CellRendererModeActivatable   -- 1
                      | CellRendererModeEditable      -- 2
                      deriving (Enum,Eq)