Написание графического интерфейса в писк - PullRequest
12 голосов
/ 22 марта 2009

Как я могу написать GIU на Squeak? Я новичок в Smalltalk и сейчас использую VisualWorks от Cincom, но я бы хотел попробовать Squeak. Я вижу, что в Squeak есть Morphic для графики, но я не могу найти пакет для написания графического интерфейса на основе MVC.

Ответы [ 5 ]

7 голосов
/ 22 марта 2009

Squeak включает в себя все классические классы MVC, но вы также можете создавать GUI с использованием Morphic, действительно гораздо более интересных, чем вы можете (легко) с MVC - вот почему Squeak был создан!

Обратите внимание, что вы можете получить лучший ответ, разместив куда-нибудь более конкретное сообщение - на SO, похоже, не так много людей на Smalltalk. Попробуйте http://news.gmane.org/gmane.comp.lang.smalltalk.squeak.beginners для начала.

4 голосов
/ 02 декабря 2010
4 голосов
/ 24 марта 2009

GUI и Squeak в первую очередь сбивают с толку. Довольно легко создать графический интерфейс с помощью Squeak. По сути, вы просто рисуете несколько прямоугольников, копируете несколько текстовых полей, ореолы почти каждого морфа допускают клонирование, а затем вы можете поместить эти морфы в ваш новый пользовательский интерфейс. Труднее добавить ВАШЕ поведение в пользовательский интерфейс, который вы только что создали, так как вам нужно как-то найти свой виджет в браузере кода.

Это та часть, где я хотел бы отметить, что мне кажется, что реализация Morphic в Squeak очень раздражает. Так что, может быть, я все это ошибаюсь, но это то, как я это вижу. Morphic был разработан, чтобы позволить вам графически создать свой собственный пользовательский интерфейс всего за несколько кликов. И это было разработано в среде самопрограммирования, где нет разрыва между объектами браузера. Регистрация вашего клона в обычном кодовом дереве - это тривиальность в Self. (Конечно, экспортировать вашу программу, конечно, нетривиально, но в Smalltalk это всегда непросто).

Итак, реальный морфический код, с которым я сталкиваюсь, обычно рассматривает морфы как любые другие объекты инфраструктуры пользовательского интерфейса: создание пользовательского интерфейса из кода, игнорирование графического построения. Я не видел удобного способа «заморозить» морфический пользовательский интерфейс в файл, как это делает Interface Builder в Mac OS X. Или, в более общем случае, если вы щелкаете морфический пользовательский интерфейс вместе, доступ к нему из кода затруднен. Браузер.

Намек Нила на то, чтобы оставить в стороне всю морфию и обратиться к MVC, может быть понятен. Тем не менее, несколько раз, когда мне приходилось иметь дело с пользовательскими интерфейсами в Squeak, я изучал код генерации пользовательского интерфейса по всему изображению и пытался имитировать их стиль.

3 голосов
/ 08 апреля 2009

Зависит от того, что вы хотите сделать, кто ваша аудитория. Первоначальный MVC быстрый, но больше не поддерживается, и выглядит очень по-1980-х. Оригинальный Morphic в Self мог бы быть хорошим, но в Squeak он превратился в беспорядок спагетти. Посмотрите на несколько классов в верхней части иерархии наследования Morph ...

В Pharo предпринимаются некоторые усилия, чтобы придать морфийским виджетам более приятный вид, поэтому он не пугает новичков, как только они открывают изображение. Кроме того, в работе находятся многообещающие привязки GTK и Objective-C, которые я бы хотел видеть более полезными. Наконец, мы видим все больше и больше веб-приложений ... Seaside может быть хорошей альтернативой нативным пользовательским интерфейсам, поскольку он превосходен в веб-приложениях со сложными потоками.

1 голос
/ 16 мая 2009

У нас есть готовое приложение для Windows, написанное на Squeak. Большая часть этого сделана с Morphic. Morphic обеспечивает большую ценность для основного пользовательского опыта. Хотя конфигурация программного обеспечения была «странной», когда вы использовали диалоговые окна, выбор файла и т. Д.

Я был очень рад обнаружить WxSqueak , который дает опыт работы с Windows. Я использую это вместе с Morphic.

...