2015-02-03 3 views
2

У меня странная ошибка с Haskell и Gtk2Hs.Не удалось совместить ожидаемый тип `() 'с фактическим типом` Int'

Я пытаюсь установить позицию курсора в записи текста с

set entree [entryCursorPosition := 5 ] 

, которые соответствуют типу

entryCursorPosition :: EntryClass self => ReadAttr self Int 

и у меня есть следующее сообщение об ошибке:

Couldn't match expected type `()' with actual type `Int' 

Do вы думаете, что это ошибка? Вы знаете, как его решить?

Я использую Gtk2Hs 0.12.3 на своем Debian Wheezy с GHC 7.4.1.

С наилучшими пожеланиями.

ответ

0

Я допустил ошибку entryCursorPosition is только атрибут и не может быть установлен.

Правильная функция для установки позиции курсора в записи является:

editableSetPosition entry (-1) 

Надеясь это будет полезно

6

Как вы сами заявляете, entryCursorPosition - это ReadAttr, что означает, что это невозможно. Внутренне

type ReadAttr o a = ReadWriteAttr o a() 

Так ReadAttr реализуются как атрибут, который имеет a и «типа записи» () «типа чтения». Это объясняет сообщение об ошибке, которое вы видите, потому что вы пытаетесь установить его на Int вместо ().

Смежные вопросы