1

Haskell で基本的な GUI を学ぶために、単純な画像ダウンローダーを作成しています。ダウンロード中にファイル名を表示する staticText ボックスがあります。

私が抱えている問題は、この小さな再帰関数にあります。

saveImgs :: [String] -> IO ()
saveImgs [] = return ()
saveImgs (x:xs) = do
    let filename = tail $ x =~ "/[^/]*$"
    logMessage x
    maybeWrite filename =<< (simpleHttp x) `X.catch` statusExceptionHandler
    saveImgs xs
        where maybeWrite f b | b == L.empty = return ()
                             | otherwise    = L.writeFile f b

保存する画像の URL のリストを取得し、textCtrl ウィジェットを更新します。ただし、すべてが完了した後、テキストを一度だけ更新します。テキストボックスのテキストを手動で更新する方法はありますか?

更新: タイマーを追加して開始しようとしましたが、何もしません。

timerClk <- timer f [on command := windowRefresh logBox False]
4

1 に答える 1