我对Pharo,Smalltalk完全陌生。我正在开发一个小应用程序,可以将温度从华氏度转换为摄氏度。任何人都可以告诉我如何使用 TextMorph 创建输入字段并将其显示在窗口上,如屏幕截图所示。 此外,能够在单击按钮时从输入字段中取回数据。下面的代码是我到目前为止所做的。截图
类温度变形
BorderedMorph subclass: #TemperatureMorph
instanceVariableNames: 'tempInputField counter'
classVariableNames: ''
package: 'Assignment'
初始化方法:包含标签、文本框和按钮。
initialize
| headingLabel converterButton|
super initialize.
self bounds: (0@0 corner:300@300).
self color: Color gray.
headingLabel := StringMorph contents: 'Converter'.
headingLabel position: 130@20.
self addMorph: headingLabel.
tempInputField := TextMorph new.
tempInputField position: 50@50.
self addMorph: tempInputField.
谢谢
另一方面不是,如果你在 Pharo 中做 UI 的东西是为了学习以外的任何东西(它看起来像 OP/is/学习,所以这可能不适用)。您应该查看魅力或规格。两者都有非常简单的文本输入和控制系统。
规范魅力
您已经可以在屏幕截图中看到必要的代码,只需将StringMorph的构造替换为TextMorph的构造即可。我建议你看看《法罗的例子》一书。它有一章是关于Morphic的,这是Pharo中的UI框架。
yourTextMorph := TextMorph new.
yourTextMorph contents: 'initial text'.
ownerMorph addMorph: yourTextMorph.
我想你也会想从TextMorph中读回内容。您可以使用yourTextMorph contents
来实现这一点。参见 Pharo Smalltalk: Reading from TextMorph