問題タブ [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 投票する
0 に答える
246 参照

haskell - WxHaskell と DragAndDrop: dropTargetOnData、dropTargetOnDrop、dropTargetOnEnter、dropTargetOnDragOver をトリガーするカスタム イベントを作成する方法

WxHaskell と DragAndDrop

次のイベント ハンドラーの使用方法を知りたい: dropTargetOnData、dropTargetOnDrop、dropTargetOnEnter、dropTargetOnDragOver….[1]

私の現在の信念が正しいかどうかを確認していただけますか:

  • wx Widgets/ wxPython [2] / [3] / [4] から、重要な例の DragAndDrog を管理するために使用する必要があるようです。
  • 「ドラッグ中」などの既存のイベントを介して実行することはできません。
  • 独自のイベントを作成してみました。しかし、それは「アクティブ化」されません。[7]
  • さらに、シグネチャ [1] から、これらは Reactive/ Windows/Controls の他のイベントとは異なり、DropTarget でアクティブ化されているように見えます。それが正しいか ?
  • Heinrich は独自のイベント「onText」を (リアクティブ バナナで) 作成しましたが、これはコントロール上にあります。[6]

  • これらのイベントが WxHaskell で効果的に機能したことを誰かが確認できますか。

    [1]: from Graphics.UI.WXCore.Events , line 1933 onwards

    Set an event handler that is called when the drop target can be filled with data. This function require to use 'dropTargetGetData' in your event handler to fill data. dropTargetOnData :: DropTarget a -> (Point -> DragResult -> IO DragResult) -> IO () ...

    -- | Set an event handler for an drop command in a drop target. dropTargetOnDrop :: DropTarget a -> (Point -> IO Bool) -> IO ()

    -- | Set an event handler for an enter command in a drop target. dropTargetOnEnter :: DropTarget a -> (Point -> DragResult -> IO DragResult) -> IO ()

    -- | Set an event handler for a drag over command in a drop target. dropTargetOnDragOver :: DropTarget a -> (Point -> DragResult -> IO DragResult) -> IO ()

    -- | Set an event handler for a leave command in a drop target. dropTargetOnLeave :: DropTarget a -> (IO ()) -> IO ()

[2] : http://docs.wxwidgets.org/2.8/wx_wxdroptarget.html#wxdroptargetondrop

[3] : http://wiki.wxpython.org/DragAndDrop

[4] : http://www.blog.pythonlibrary.org/2012/06/20/wxpython-introduction-to-drag-and-drop/

[5] : http://wewantarock.wordpress.com/2011/06/17/how-does-wxhaskell-event-handling-work-part-1/

[6] : https://github.com/HeinrichApfelmus/reactive-banana/blob/master/reactive-banana-wx/src/Reactive/Banana/WX.hs L 88

[7] : module Main where

0 投票する
2 に答える
440 参照

haskell - wxHaskell アプリを再配布するには?

私はghc 7.6.3を使用しています。ここから wxHaskell をインストールしました: https://github.com/wxHaskell/wxHaskell

それは機能し、サンプルプログラムはコンパイルされ、正常に実行されました。

唯一の問題は、mac OS X で wxHaskell アプリケーションを配布したいということです。 macosx-app と cabal-macosx ( https://github.com/michaelt/cabal-macosx ) を使用して「アプリ」ファイルを作成してみました. 私のマシンでは問題なく動作しますが、別のコンピュータでは実行できません。次のエラーが表示されます。

私は OS X 10.8.4 (Mountain Lion) を使用していますが、Windows でアプリをコンパイルして再配布することにも興味があります。

wxHaskell アプリを再配布する最良の方法は何ですか?

Setup.hs

wxHello.cabal:

生成されたパッケージ内の dylib ファイルは次のとおりです。

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

user-interface - スタックオーバーフローによる GUI 再起動時の wxHaskell segfaults

wxHaskell GUI を起動して閉じた後、別の wxHaskell GUI を再度起動すると、アプリケーションはスタック オーバーフローによりセグメンテーション フォールトを取得します。

簡単なデモンストレーション ソース:

これは古いバグのようです。 http://permalink.gmane.org/gmane.comp.lang.haskell.wxhaskell.general/789を参照してください。このメッセージには、wxHaskell の SourceForge リポジトリの問題へのリンクが含まれています。さらに最近のコメントでは、バグのない wxHaskell (wxWidgets 2.9 の開発ブランチのようです) のバージョンについて言及されています。

wxWidgets 2.8 で Ubuntu 12.04 を使用しているため、wxHaskell 0.13 を使用する必要があります。このバグに関する情報を見つけようとして、動作していると思われる開発バージョンの変更ログを調べましたが、何も見つかりませんでした。

このバグのある動作は wxHaskell 0.13 で修正できますか、または少なくとも何らかの回避策を講じることは可能ですか? 1 つの永続的な GUI で動作するようにアプリケーションを書き直すことは、不必要に複雑に思えます。

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

macos - Haskell wx が Macosx のインストールに失敗する

Mac (Osx Mavericks) に wxHaskell をインストールしようとしていました。gcc で問題を修正し、brew を使用して wxmac (バージョン 3.0) をインストールしました。次々と出てくる問題は、私が 3.0 を持っているのに、ハッカー集団が wx 2.9 を探しているということです。それは見つけることができないと言います:

brew で別のバージョンの wx をインストールする方法が見つかりません。誰にも修正がありますか?ありがとう!

0 投票する
2 に答える
502 参照

linux - Linux に wxHaskell をインストールする際のビルド エラー

私はUbuntu 13.10を使用しており、wxHaskellをインストールしようとしています。http://repos.codelite.org/wx3.0/ubuntu/リポジトリから wxWidgets 2.9 をインストールしました。

基本cabal install wxは私を取得します

GitHub リポジトリからダウンロードしてソースからビルドすると、次のようになります。

これで何が起こっていて、それを修正するために何が必要ですか?

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

haskell - MinGW/MSYS を使用して Windows に wxHaskell をインストールする方法

gcc を使用してソースからビルドされた MinGW/MSYS と wxWidget 3.0 を使用して、Windows XP64 を実行しているマシンに wxHaskell をインストールしようとしていました。やった:

エラーが発生しました:

wxWidgets を使用して C++ (gcc) でサンプル アプリケーションを作成することに成功しました。だから私はwxWidgetのインストールが機能しています。そして私は持ってwx-configいます:

問題はwx-config、UNIX シェル スクリプトであり、cabal (MSYS から呼び出される) が、システム パス上にある場合でも認識を拒否することです。MSYS で実行するwx-configと、次のようになります。

スクリプトをexeに変換できるかどうかを確認するためにhttps://stackoverflow.com/questions/21998763/how-to-convert-msys-shell-scripts-to-windows-exe-filesに質問しましたが、誰も解決策を答えませんでした。

ここにも関連する質問wxHaskell installation on windowsがあり、別の here wx 0.90.0.1 fails to install on Haskell Platform 2012.2.0.0 (WinXP) があります。実際、動作確認済みの回答は見つかりませんでした。また、ここでのエラー/設定が異なるように見えるか、その回答が私の問題を解決していないようです。特に、 http: //www.haskell.org/haskellwiki/WxHaskell/Windowsごとにhttps://sourceforge.net/projects/wxhaskell/files/wx-config-win/から外部 wx-config.exe をダウンロードしました。しかし、wx-config.exe を実行すると、wxWidget のインストールを認識できず、次のような wxWidgets が見つからないというエラーが常に表示されます。

この問題を回避する方法はありますか?

ありがとう、

- アップデート -

@JP私が試した:

そして得た

コンテナ >=0.2 && <0.5 をバイパスするように wxdirect.cabal を微調整しましたが、厳密なパスを取得できません。

0 投票する
2 に答える
264 参照

c++ - wxLog::DoLog への未定義の参照が wxWidget 3.0 に対して wxHaskell を構築中にエラーが発生しました

wxWidgets 3.0 用に wxHaskell をビルドしようとしています。https://github.com/wxHaskell/wxHaskellの wxHaskell の最新の git バージョンを使用しました。

install.txtwxHaskell-master.zipをフォローしようとしましたが、これまでに行ったことは次のとおりです。

wxcSetup.hs が wxWidgets 2.9 を必要とするため、コンパイルできません。交換しました

そして、次のことを行いました:

すべてのコンパイルは問題なく行われましたが、最終的にいくつかのリンク エラーが発生しました。解決するのが最も難しいのは次のとおりです。

対応するソース コードは次のwxc/src/cpp/eljlog.cppとおりです。

このエラーの原因と修正方法がわかりませんでした。この問題について調査したところvtable、子クラスで仮想関数を定義せずに宣言したことが原因であると示唆する人もいました。他の人は、オブジェクト ファイルが g++ コマンド ラインで指定される順序であると提案しました。しかし、ここではどちらも当てはまらないようです。関数関数を削除するELJLog::DoLogか、仮想キーワードをコメントアウトしてみました。奇妙なことに、DoLog が発生していない場合でも、ELJLog の vtable に関する何かを示すリンク エラー/エラーが常にあり、wxLog::DoLog を参照します。

また、補足としてwxLog::DoLog、wxWidgets 3.0 のドキュメントには記載されていないようです。この機能が非推奨かどうかはわかりません。それでも、理解できない方法でレガシー派生クラスのエラーが発生しています。

ここで何が起こっているのですか?

--- EDIT2 ---

問題の関数をコメントアウトすると

次のように、さまざまなリンク エラーが発生しました。

- - 編集 - -

私は mingw.org の mingw32 の下でこれに取り組みました。ソースから wxWidgets 3.0.0 安定リリースをビルドしました。実行した手順は次のとおりです。

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

haskell - mingw32 と tdm-gcc64 が外部 gcc を使用して異なる動作をする理由

cabal installwxHaskell (wxWidgets 3.0 に対する Haskell プラットフォーム 2013.2) のコンポーネントを試しています。mingw.org の 32 ビット mingw で git バージョンをコンパイルできました。しかし、結局、インストールされた wx は正しく機能できず、最小限の例を実行すると、wxc.dll でランタイム例外が発生します。wxWidgets の人々は TDM-GCC コンパイル済みバイナリの形式でバイナリを提供しているため、TDM-GCC 4.8.1 64 ビットで同じものをコンパイルしようとしました。

しかし、すぐに TDM-GCC でコンパイル エラーが発生しました。

エラー: 'strnlen' はこのスコープで宣言されていません

私が驚いたのは、mingw32 と TDM-gcc の両方が Haskell Platform の同じ外部 gcc を使用しているにもかかわらずc:\HaskellPlatform\2013.2.0.0\mingw\bin\gcc.exe、一方がエラーを出し、もう一方が正常にコンパイルされることです。

問題を引き起こしている最初のファイルはsrc\cpp\eljaccelerator.cpp. mingw32 で問題なくコンパイルできます:

ただし、TDM-gcc ではエラーが発生します。

似たような経験をした人がいないか気になりました。何が問題で、TDM-GCC のコンパイルを修正する方法はありますか? に追加#include <cstring>してみましたwxcrt.hが、何も変わりません。

参考までに、ソースから wxWidgets 3.0.0 をそれぞれ mingw および tdm-gcc バージョンでコンパイルしました。

必要に応じて詳細を提供できます。

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

wxhaskell - グローバルな主要イベントに対応

現在どのウィジェットにフォーカスがあるかに関係なく、キーボード イベントに応答するにはどうすればよいですか? たとえば、次のプログラムは、textCtrl がフォーカスされていない場合にのみ、「キーが押されました」というメッセージでキーボード イベントに応答しますが、これは私が望んでいるものではありません。