問題タブ [threepenny-gui]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - threepenny gui での IORef の使用
threepenny-gui で IORef を設定しようとしていますが、うまくいきません。私のアプリでは、IORef 自体はより複雑になり、それ自体は表示されませんが、この例は私が考える問題を示しています。
これが私の試みです:
コードの並べ替えは機能しますが、outValue は最新ではありません。
更新が時間どおりになるように修正するにはどうすればよいですか。また、コードの改善は大歓迎です。
ありがとう。
haskell - threepenny-gui で FRP と IORef を使用する
threepenny-gui (TPG) で IORef を使用した小さな例があります。
TPG で Reactive を使用するようにこれを変更しようとしています。イベント valueChange および keyDown から動作を作成するところまで来ました。
しかし、これらのビヘイビアーを使用して IORef との間で値を保存/取得する方法に行き詰まっています。問題は、IORef 呼び出しが UI モナドにあることです。したがって、それらを使用すると、動作は になりますが、動作Behavior (UI a)
しませんsink
。この場合、IORef を使用する必要がないことはわかっています (例: 通貨換算の例)。ただし、実際の場合は使用します。
編集:私は自分の属性を書いてみました:
で属性を設定できるようにBehavior (UI String)
:
コードはコンパイルされますが、機能しません。
haskell - threepenny-gui のリストボックスの選択に基づく他の要素の変更
したがって、リストボックス、ボタン、テキストエリアを備えた簡単なレイアウトの例があります。ボタンをクリックすると、テキストエリアのテキストが変更されます。
私がやりたかったのは、変更をリストボックスの選択に依存させることです(たとえば、選択に基づいて変更する"new text"
か、"First"
または"Second"
選択に基づいて変更します)。
userSelection
とfacts
を組み合わせることで、非常に簡単に選択を取得できます
しかし、テキストエリアの値の設定は
選択がBehavior
.
これはすべて私には少し単調に思えます.これを行う正しい方法は何だろうと思っていました. ボタンが押されたときだけでなく、リストボックスの選択が完了または変更されたときに、何かをする必要があるかもしれません。
haskell - 複数のモナド型を持つHaskell do句
Threepenny-GUIという Haskell のグラフィック ライブラリを使用しています。このライブラリでは、メイン関数はUI
モナド オブジェクトを返します。IO
これは、値をローカル変数にアンパックしようとすると、さまざまなモナド型について不平を言うエラーが発生するため、頭痛の種になります。
これが私の問題の例です。これは、Threepenny-GUI のコード例で示されているように、標準の main 関数のわずかに変更されたバージョンです。
5 行目に注意してください。
次のエラーが返されます。
私の質問に関してはIO
、標準の矢印表記 ( <-
) を使用して関数をアンパックし、これらの変数をIO ()
ではなくとして保持し続けるとUI ()
、他の関数に簡単に渡すことができます。
現在、私が見つけた唯一の解決策は を使用することでしたliftIO
が、これによりUI
モナド型への変換が発生しますが、実際には型を使い続けたいと思っていIO
ます。
haskell - Haskell UI do 句、印刷方法は?
これはこれに対するフォローアップの質問です。Threepenny-GUIという Haskell のグラフィック ライブラリを使用しています。このライブラリでは、メイン関数はUI
モナド オブジェクトを返します。簡単な印刷コマンドを実行しようとしていますが、成功しません。デバッグ目的で印刷を有効にするための適切な回避策は何ですか。
コード:
エラー:
haskell - threepenny-gui でイベントと属性を組み合わせる
テキストエリアEvent String
に入れたいものがあります。sink
これは正常に機能しますが、チェックボックスの選択の現在の値をこの文字列に結合したいと考えています。
最初にcheckedChange
、機能するチェックボックスを使用してこれを行いましたが、問題があります。値がチェックボックスにシンクされている場合、checked
checkedChange-Event は存在せず、テキストエリアに表示される値は適切に更新されません。
チェックボックスの選択を読み取ることができましたが、 andget checked
を組み合わせる問題に遭遇しました(またはブール値が文字列に変換されるため)。Event String
UI Bool
UI String
編集:より正確に言うと、次のようなことをしたい
チェックボックスの属性のeCombinedValue
元Event String
の値と現在の値があります。checked
ができた
しかし、私が持っている場合、これは失敗します
別の場所 (いいえUI.checkedChange
)。
を使用できますshow <$> get UI.checked checkBox
が、 と を組み合わせる必要がEvent String
ありUI String
ます。
user-interface - threepenny-guiを使用して無限スクロールリストボックスを構築する方法
Haskell および Threepenny-GUI コミュニティの皆様、こんにちは。
無限スクロールをサポートするListBoxを表示したいと考えています。SQLite データベースに 100k ~ 1000k 行のテーブルがあります。ListBox に行を表示したい。この投稿threepenny-gui-reactive-in-client-serverから助けを得ました。ページ番号用とそのページの実際の行用の 2 つの ListBox で GUI を動作させました。
私の目標は、ディスプレイが 1 つだけの GUI を作成することですが、基本的なバージョンのようなものですが、SlickGrid を使用したこの例に似ています: http://mleibman.github.io/SlickGrid/examples/example4-model.html。