Использование виджетов Haskell Gtk с пакетом Graphics.SOE
Я работал над книгой Пола Худака "Школа выражений на Хаскелле" и использовал связанную с ним графическую библиотеку Graphics.SOE.Gtk на основе gtk ( ссылка на документацию) для небольших экспериментов с 2D-рисованием.
Однако эта библиотека очень проста и имеет только возможность рисовать фигуры. На данный момент я пишу некоторые программы, которые требуют определенных графических элементов, таких как кнопки и текстовые поля. Мой вопрос: возможно ли использовать возможности рисования библиотеки SOE вместе с виджетами графического интерфейса, найденными в gtk2hs? Например, я могу написать программу, в которой я могу нажать кнопку, которая заставит программу нарисовать треугольную форму в другом контейнере в том же окне.
Я искал в Интернете способ сделать это, но большинство уроков предлагают использовать cairo для создания любого графического рисунка с помощью Gtk; API-интерфейс SOE-графики выглядит относительно автономным.
1 ответ
Нет, нет действительно значимого пути для soegtk
и регулярно gtk
взаимодействовать. Причина в том, что soegtk
сохраняет все свои типы данных абстрактными; это хорошая практика с точки зрения "упрощает для разработчика изменение реализации без изменения интерфейса", но это может быть немного ограничивающим из "Я просто пользователь, который хочет что-то изменить в интерфейсе" не обещайте, чтобы "точка зрения".
Вы могли бы:
- сделать копию текста одного модуля в
soegtk
упакуйте и настройте строку экспорта, чтобы экспортировать больше вещей и успешно нарушать любые границы абстракции, которые вам не нравятся - бессмысленно взаимодействовать; например, ваш
gtk
Кнопка открытьsoegtk
окно с интересной графикой - изучите другую библиотеку рисунков, скажем,
cairo
или жеdiagrams