我是Smalltalk的新手,我一整天都在寻找如何编写GUI.我已经找到了大量关于如何使用Morph
s和Halo
s是什么的信息,但我似乎无法找到我需要的东西(它只是一个带有a条目的表Dictionary
).
接下来Morphs
,我还发现了一些关于smalltalk如何引入MVC原理的东西.我甚至找到了ST-80 Views
包含我需要的所有内容的类别,但我又不确定如何正确使用它,不知怎的,我似乎找不到合适的来源让我开始.
因此,我的问题:从哪里开始构建一个简单的GUI?我应该如何从Morph
可用的十亿中选择,如何将它们组合成一个可靠的界面?MVC只应在它变得更复杂时使用,还是对简单的GUI有用?关于在哪些情况下使用什么,是否有任何一般概述?
为了说明我想做什么,我添加了一些伪代码,我将如何记住它:
d := Dictionary new. "add data to the dictionary..." view := DictionaryView new. view addDictionary: d. button := SimpleButtonMorph new. "e.g. change label to sum of values" button target: [button label: d sum.]. window := SystemWindow labelled: test. window addMorph: view. window addMorph: button.
任何帮助我开始这一点的人都非常感谢.
我最近在一本书中找到了一章,通过一些很好的解释和示例代码帮助我更好地理解形态,对于想要了解更多的人,也有一整套免费书籍.来自吱吱声维基的教程也很有用.特别是那个Pluggable Morphs
让我更好地理解这个概念.请注意,本教程隐藏在未查看的教程列表中(可能是因为项目中存在一些可以下载的错误).
在Squeak中(我假设您使用Squeak,因为您说的是Morph
s和ST80),有几种方法可以构建GUI.
你可以把Morphs放在一起.通常,你需要一些Widget,比如SimpleHierarchicalListMorph
.但这个过程很快就会变得乏味.
如果您正在创建一个类似于工具的应用程序,那么ToolBuilder可能就是您的朋友.系统浏览器,调试器或最近的工具,如FontImporter,都是使用ToolBuilder构建的.它需要带有#buildWith:
消息的Model .搜索此消息的实施者以了解如何使用ToolBuilder.
但可能是最简单的方法:
该Morphic环设计让您以图形放在一起你的应用程序UI.您可以重复使用该设计,并且不需要太多代码就可以将程序挂钩到UI.例子包括.
注意:您还找到了MVC实现.它在Squeak已经过时了,但它仍然应该可用.但是,您必须创建一个新项目才能使用MVC.顺便说一句,当您使用ToolBuilder时,可以创建可在Morphic和MVC项目中运行的工具.