0

Gtk2Hs に問題があり、アクティベート可能を設定したいです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

しかし、コンパイルエラーは同じままです。

エラーがどこから来たのか分かりますか?

4

1 に答える 1

2

これは、その古い Haskell ライブラリのバグのように見えます: そのソース コードから

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

上記はコンストラクターをエクスポートしていません。新しいバージョンは次のことを行います。

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

Haskell ライブラリを新しいバージョンに更新してみてください。それはそれを修正する必要があります。


代替。タイプには古いバージョンでもインスタンスがあるため 、コンストラクターの代わりにEnum使用できる簡単で汚い回避策として。toEnum 1 :: CellRendererMode

data CellRendererMode = CellRendererModeInert         -- 0
                      | CellRendererModeActivatable   -- 1
                      | CellRendererModeEditable      -- 2
                      deriving (Enum,Eq)
于 2015-02-01T12:40:39.703 に答える