4

GUIでhaskellプログラムを書いています。次のコードを書くと

    onClicked btn $ do
           print 1

    onClicked btn $ do
           print 2

btn を押すと、1 と 2 が同時に印刷されました

背景: マインスイーパ ゲームを書いています。ボタンに爆発する地雷がある場合、もう一度再生して、同じボタンを定義して地雷を除去しようとしますが、最初の定義により、ボタンを押すと再び地雷が爆発します。

ありがとう

4

1 に答える 1

6

によって返された接続を使用して、onClickedイベントハンドラーの登録を解除します。

print1Handler <- onClicked btn (print 1)
signalDisconnect print1Handler
print2Handler <- onClicked btn (print 2)

また、onClicked非推奨です。可能であれば、代わりに新しいonメカニズムを使用する必要があります。その使用法は非常に似ています:

print1Handler <- on buttonActivated btn (print 1)
signalDisconnect print1Handler
print2Handler <- on buttonActivated btn (print 2)
于 2011-12-30T16:45:30.910 に答える