Использование виджетов Haskell Gtk с пакетом Graphics.SOE

Я работал над книгой Пола Худака "Школа выражений на Хаскелле" и использовал связанную с ним графическую библиотеку Graphics.SOE.Gtk на основе gtk ( ссылка на документацию) для небольших экспериментов с 2D-рисованием.

Однако эта библиотека очень проста и имеет только возможность рисовать фигуры. На данный момент я пишу некоторые программы, которые требуют определенных графических элементов, таких как кнопки и текстовые поля. Мой вопрос: возможно ли использовать возможности рисования библиотеки SOE вместе с виджетами графического интерфейса, найденными в gtk2hs? Например, я могу написать программу, в которой я могу нажать кнопку, которая заставит программу нарисовать треугольную форму в другом контейнере в том же окне.

Я искал в Интернете способ сделать это, но большинство уроков предлагают использовать cairo для создания любого графического рисунка с помощью Gtk; API-интерфейс SOE-графики выглядит относительно автономным.

1 ответ

Решение

Нет, нет действительно значимого пути для soegtk и регулярно gtk взаимодействовать. Причина в том, что soegtk сохраняет все свои типы данных абстрактными; это хорошая практика с точки зрения "упрощает для разработчика изменение реализации без изменения интерфейса", но это может быть немного ограничивающим из "Я просто пользователь, который хочет что-то изменить в интерфейсе" не обещайте, чтобы "точка зрения".

Вы могли бы:

  • сделать копию текста одного модуля в soegtk упакуйте и настройте строку экспорта, чтобы экспортировать больше вещей и успешно нарушать любые границы абстракции, которые вам не нравятся
  • бессмысленно взаимодействовать; например, ваш gtk Кнопка открыть soegtk окно с интересной графикой
  • изучите другую библиотеку рисунков, скажем, cairo или же diagrams
Другие вопросы по тегам