我对Haskell和Gtk2Hs有一个奇怪的错误。
我尝试使用
在文本条目中设置光标位置set entree [entryCursorPosition := 5 ]
对应于Type
entryCursorPosition :: EntryClass self => ReadAttr self Int
我有以下错误:
Couldn't match expected type `()' with actual type `Int'
你认为这是一个错误吗?你知道怎么解决吗?
我在使用GHC 7.4.1的Debian Wheezy上使用Gtk2Hs 0.12.3。
最诚挚的问候。
答案 0 :(得分:6)
正如您所说,entryCursorPosition
是ReadAttr
,这意味着无法写入。在内部,
type ReadAttr o a = ReadWriteAttr o a ()
所以ReadAttr
被实现为具有"读取类型"的属性。 a
和"写入类型" ()
。这解释了您看到的错误消息,因为您尝试将其设置为Int
而不是()
。
答案 1 :(得分:0)
我犯了一个错误entryCursorPosition
是只读 attribut,无法设置。
在条目中设置光标位置的正确功能是:
editableSetPosition entry (-1)
希望它会有所帮助