Pharo Smalltalk:如何使用TextMorph创建输入字段,然后从输入字段中获取数据?

时间:2017-10-19 15:47:37

标签: textbox smalltalk pharo

我对Pharo,Smalltalk完全陌生。我正在开发一个小型应用程序,将温度从华氏温度转换为摄氏温度。任何人都可以告诉我如何使用TextMorph创建输入字段并将其显示在窗口上,如屏幕截图所示。此外,单击按钮时能够从输入字段返回数据。下面的代码就是我到目前为止所做的。 Screenshot

类TemperatureMorph

 BorderedMorph subclass: #TemperatureMorph
        instanceVariableNames: 'tempInputField counter'
        classVariableNames: ''
        package: 'Assignment'

initialize方法:包含标签,文本框和按钮。

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.

由于

2 个答案:

答案 0 :(得分:2)

您已经可以在屏幕截图中看到必要的代码,您只需要将TextMorph的构造替换为TextMorph的构造。我建议你看一下Pharo by Example书。它有一章关于Morphic,它是Pharo中的UI框架。

yourTextMorph := TextMorph new.
yourTextMorph contents: 'initial text'.
ownerMorph addMorph: yourTextMorph.

我猜你也想要从TextMorph中读回内容。您可以使用yourTextMorph contents来实现这一目标。另请参阅Pharo Smalltalk: Reading from TextMorph

答案 1 :(得分:2)

一方面不是,如果你在Pharo中做除了学习以外的任何东西(它看起来像OP /是/学习,所以这可能不适用)。你应该看看Glamour或Spec。两者都有非常简单的文本输入和控制系统。

Spec Glamour