【问题标题】:Writing a GUI in squeak用吱吱声写一个 GUI
【发布时间】:2010-10-14 19:38:36
【问题描述】:

如何在 Squeak 中编写 GIU?我是 Smalltalk 新手,目前正在使用 Cincom 的 VisualWorks,但我想尝试一下 Squeak。我看到 Squeak 具有用于图形的 Morphic,但对于我的生活,我似乎无法找到一个包来编写基于 MVC 的 GUI。

【问题讨论】:

    标签: model-view-controller user-interface smalltalk squeak visualworks


    【解决方案1】:

    Squeak 包含所有经典的 MVC 类,但您也可以使用 Morphic 创建 GUI,确实比使用 MVC(轻松)更有趣 - 这就是创建 Squeak 的原因!

    请注意,您可能会在更具体的地方获得更好的回复 - SO 上似乎没有多少 Smalltalk 人。尝试http://news.gmane.org/gmane.comp.lang.smalltalk.squeak.beginners 开始。

    【讨论】:

    • 感谢 Neil,希望更多的 Smalltalkers 会被 SO 吸引——这不是一个糟糕的网站...
    【解决方案2】:

    GUI 和 Squeak 首先非常令人困惑。使用 Squeak 创建 GUI 相当容易。基本上,您只需绘制几个矩形,复制一些文本框,几乎每个变形的光环都允许克隆,然后您可以将这些变形放到您的新 UI 中。将您的行为添加到您刚刚创建的 UI 更加困难,因为您必须以某种方式在代码浏览器中找到您的小部件。

    这是我想指出的部分,我发现 Squeak 中的 Morphic 实现非常烦人。所以,也许我把这一切都弄错了,但这就是我的看法。 Morphic 旨在让您只需单击几下即可以图形方式构建自己的 UI。它是在自编程环境中设计的,没有浏览器对象的差距。将你的克隆注册到普通的代码树中对 Self 来说是一件小事。 (导出您的程序当然不是一件容易的事,但话又说回来,在 Smalltalk 中这无论如何都不容易)。

    因此,我遇到的现实世界中的变形代码通常将变形视为任何其他 UI 框架对象:从代码创建 UI,而忽略图形构建。我还没有看到像Interface Builder在Mac OS X上那样将变形UI“冲击冻结”到文件中的便捷方法。或者,更一般地说,如果您一起单击变形UI,则很难从代码中访问它浏览器。

    Neil 暗示将整个 Morphic 放在一边并转向 MVC,这可能是可以理解的。然而,有几次我不得不在 Squeak 中处理用户界面,我检查了图像周围的 UI 生成代码,并试图模仿他们的风格。

    【讨论】:

      【解决方案3】:

      试试 Morphic Designer:

      https://www.hpi.uni-potsdam.de/hirschfeld/trac/SqueakCommunityProjects/wiki/designer

      再见, 马塞尔·泰梅尔

      【讨论】:

        【解决方案4】:

        取决于你想做什么,你的听众是谁。最初的 MVC 速度很快,但不再真正维护,而且看起来非常 1980 年。 Self 中的原始 Morphic 可能很好,但在 Squeak 中它已经演变成一团意大利面条。看看Morph 继承层次结构顶部的几个类...

        Pharo 努力为 Morphic 小部件带来更好的外观,因此它不会在新人打开图像的那一刻就把他们吓跑。还有一些很有前途的 GTK 和 Objective-C 绑定正在工作中,我希望看到它们得到更多使用。最后,我们看到越来越多的 Web 应用程序...... Seaside 可以成为原生 UI 的不错替代品,因为它擅长处理复杂流程的 Web 应用程序。

        【讨论】:

          【解决方案5】:

          我们有一个用 Squeak 编写的现成 Windows 应用程序。其中大部分是通过 Morphic 完成的。 Morphic 为主要的用户体验提供了很多价值。当您使用对话框、文件选择等时,软件配置虽然很“奇怪”。

          我最近很高兴发现WxSqueak 提供了来自 Windows 的原生体验。我将它与 Morphic 结合使用。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多