問題タブ [wxhaskell]

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.

0 投票する
1 に答える
108 参照

haskell - WxHaskell はコマンド ライン引数の機能を壊します

WXHaskell でプログラムを作成し、動作することを確認しました。簡単に言うと、GUI またはコマンド ライン インターフェイスを介してプログラムを使用できるように計画しました。その後、GetOpts ライブラリを使用してコマンド ライン引数の処理を追加し、さまざまな引数が意図したとおりに機能することのテストを開始しました。

しかし、コマンド ライン オプションを指定してプログラムを実行し始めると、プログラムが失敗し始めました。プログラムが GUI モードで呼び出される (つまり、WXHaskell を実行する) たびに、認識されないコマンド ライン オプションに関する警告が表示されてプログラムがクラッシュしました (この警告は次の形式でした)。 WXwidgets ポップアップ ウィンドウの)。プログラムが端末モードで実行されたときはいつでも、すべてのオプションが正しく処理されたので、私の疑いでは、WX 計算を実行すると、「ARGV」値が行の下の WX 関数に渡されます。メインプログラム本体、それらは認識されません。

この動作を再現する小さなテスト ケースを作成しました (GetOpts なし)。

コマンド ライン引数が処理され、計算 (ユーザー指定の Int に 3 を掛けるだけ) が端末または GUI で実行されます。

ユーザーが「端末」を指定すると、プログラムは問題なく完了します。ユーザーが引数を指定しない場合、計算はデフォルトで GUI モードで実行され、正常に完了します。

ユーザーが「gui」引数を指定すると、プログラムがクラッシュし、(ポップアップ ウィンドウで)「予期しないパラメータ 'gui'」というエラーが表示されます。

私の引数が後続の操作に渡されているように見える理由、またはさらに良いことに、これが起こらないようにする方法を誰かが知っているなら、私はとても幸せです!

0 投票する
1 に答える
496 参照

haskell - wxHaskell プロジェクトをビルドするために nix でスタックを使用する方法は?

Nix と Stack を使用して wxHaskell のビルド環境をセットアップしようとしています。

nix から wxWidgets-3.0.2 をインストールしました。これは、.cabal ファイルの関連部分です。

および stack.yaml ファイル

追加してみました

しかし、それは明らかに正しい方法ではありませんでした。

そこで、.yaml ファイルの nix 部分を取り除き、$ stack --nix build失敗したコマンドを試しました。ログファイルは言った

ただし、nix を使用して wx-config と wxwidgets をインストールしています。ビルド プロセスは、何らかの理由でそれを見つけることができません。このビルド環境をセットアップするにはどうすればよいですか? ビルド プロセスが wx-config を含むディレクトリを参照するように指示する方法はありますか? 見つからない理由がわかりません。そのPATHにあります。

0 投票する
0 に答える
57 参照

haskell - wxHaskell: 動的コンテンツに対応するためにレイアウトのサイズを変更します

wxHaskell の動的レイアウトに問題があります。パネルをネストしましたが、最も内側のパネルのレイアウトが、親のサイズを超えて大きくなるような方法で変更されることがよくあります。

レイアウトを変換する Graphics.UI.WXCore.Layoutのさまざまな関数の目的と効果についてはdynamic不明です。コンテンツのサイズ変更に基づいてパネルのサイズを変更できるようにする方法。stretchexpandfill

暫定的に windowReLayout を使用して、レイアウトの拡張をトリガーするイベントでレイアウトを手動で更新していますが、より自然でエレガントな方法で目的の動作を実現できると思います。


余談ですが、私はリアクティブ バナナを介して WX を使用していますが、ウィジェット自体のレイアウト動作についてはそれほど変更する必要はありません。