問題タブ [gtk2hs]

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 に答える
144 参照

haskell - Ptr () を SourceCompletionProvider に変換する

の質問を部分的に解決しました。

GObject現在、サブタイプを登録できます( hpasebindings-gobjectを参照) c'g_type_add_interface_static関数を使用して実装できます(ただし、まだ試していません)。SourceCompletionProvider

唯一の問題は、 からPtr ()返されたc'g_object_newvgtk2hsデータ型に変換することSourceCompletionProviderです。どうすればいいですか?ヒントはありますか?

SourceCompletionProviderは次のように定義されます。

この定義は何を意味するのでしょうか? なぜ再帰的ですか?プロバイダーはForeignPtrtoプロバイダーです-私には奇妙に見えます。

ありがとう。

解決:

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

haskell - HaskellとGtk2hsを使用して、新しいウィジェットと関連するイベントをどのように作成しますか?

私は自分が取り組んでいるアプリケーションを持っており、基本的にはGUIプログラミングを自己学習しています。私はprogrammers.stackexchangeについてかなり複雑な質問をしました。この質問は、私が試したことのないアイデアの仕組みについてです。

TreeView、TextField、DrawingAreaの3つのウィジェットがあります。3つのウィジェットはそれぞれ、一方のイベントと非常に密接に相互作用し、必然的にもう一方のアクションをトリガーします。これらの3つのウィジェットは、 (これまでのところ)グローバルアプリケーションの状態を含むMVarを読み取ることを除いて、アプリケーションの残りの部分とほとんど相互作用しません。

現在、より大きなアプリケーションがこれら3つのウィジェットのいずれかと直接対話する必要があるケースは考えられません。さらに、その同一のパターンを複製して、同じ形式の他のデータを確認します。したがって、GTKの通常のイベントキューと相互作用できるより大きな複合ウィジェットにこれらの3つのウィジェットを実際にバインドすることは理にかなっているように思われます。だから、例えば

したがって、ウィジェットはDataUpdatedEventを使用して、MyDataViewWidget内の何かが変更されたことをアプリケーションの残りの部分に示し、RedrawEventは、ソースデータを再描画または再読み取りする必要があることをウィジェットに通知します。

(技術的には、複合ウィジェットのさまざまなアクションが何をするかを意味的に考えていません...ウィジェットがアプリケーションデータの読み取り専用コピーを持ち、RedrawEventで新しい読み取り専用コピーを受信する必要があるかどうかおそらくウィジェットはMVar自体を持ち、MVarのデータを変更できるようになるでしょう...私は今、実際にこれを行う方法に興味があります)

このようなことをした例はありますか?基本的に、新しいウィジェットと2つのシグナルを作成するには、どのインスタンスを実装する必要がありますか?Haskellに固執したいのですが、新しいウィジェットを構築するためにCにドロップすることもできます。

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

haskell - Haskell での GUI プログラミング - Ubuntu でのインストールの問題

まだ最新の GUI パッケージはありますか?

今日、wxHaskell と gtk2hs の両方をインストールしようとしましたが、どちらも解決できない依存関係で失敗しました (wxHaskell はいくつかの wxWidget ライブラリを見つけることができず、glade チュートリアル gtk2hs を試しているときに、私もインストールした pkg-config libglade2-0 が見つからないために失敗しました)。

Linux/cabal/パッケージのインストールを十分に理解していないのは私の問題だと思いますが、HaskellのGUIライブラリをどこかに開始(インストール)する最新のチュートリアルはありますか?

エラーは次のとおりです。

これは本当にイライラします - 誰かが私を助けてくれるかもしれません - ありがとう!

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

haskell - Haskell と GIO を使用してファイルを読み取るにはどうすればよいですか?

たとえば、Haskell と gtk2hs を使用して作成しているプログラムの一部を次に示します。

fileReadメソッドはFileInputStreamインスタンスを返しますが、私の人生では、ドキュメントのどこにもインスタンスから読み取るメソッドを見つけることができません。GIO で対応する C メソッドは のはずg_input_stream_readですが、gtk2hs では実装されていないようです。

何か不足していますか?

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

haskell - 別のイベントハンドラーが必要(ボタンが押された)Gtk2Hs

に関数を追加したいので、イベントbuttonNewWithLabelだけでなく、Enterキーが押されたときに反応します。onClicked方法がわかりませんが、それほど簡単ではないはずonClickedですか?

私のコードピースは次のようになります。

そのような機能はありGtk2Hsますか?または...他に使用できるものはありますか?

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

haskell - haskellでglade xmlファイルを使用できません

初めての投稿なので、挨拶すべきかどうか迷っています。

とにかく、私はgtk2hs websiteからのグレードのチュートリアルに従っています。コードは適切にコンパイルされましたが、実行しようとするとこのエラーが発生します。

これは私のグレイドファイルです。

グレード ファイルは、ソース コードと同じディレクトリにあります。ソース コードは、チュートリアルのものからの正確なコピーです。私はこれまで空き地で作業したことがないので、何がうまくいかないのかわかりません。

ghc を 7.6 から 7.4.2 にダウングレードする必要がありました。私はグレード 3.14.1 を使用しています。他のすべてのパッケージは cabal 経由でインストールされているため、現在のバージョンになっています。

インターフェースを切り替えると、最初と最後にまだ文句を言います。

そして、ウィジェットですべてのオブジェクトタグを変更すると、これが得られます

これを行うことでエラーが少なくなりますが、それでも機能しません。

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

haskell - Gtk2HsでDrawingAreaを使用したアニメーション

私はHaskellの経験があまりなく、Gtk2Hを使い始めたばかりなので、これはばかげた質問かもしれません。

次のLineタイプを定義しています。

Lineそして、にsのリストを描画する関数がありますDrawingArea。問題は、この関数がすべてのLinesを同時に描画することですが、2つの秒の間に少し遅れて一度に1つずつ描画したいと思いLineます。

この関数は、DrawingAreaが公開されたときに呼び出されます。

StateTまだ描画されていないものを追跡するためにを使用することを検討しましたLineが、アニメーションの実装方法がわかりません。widgetShowAll状態を変更してから毎回呼び出す場合でも、mainGUIが呼び出されるまでウィンドウは表示されません。

drawCanvasどういうわけか描画を処理しながら、状態を継続的に更新する新しいスレッドを作成することは可能ですか?もしそうなら、誰かがそのような行動の例を教えてくれませんか?それとももっと良いアプローチがありますか?

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

haskell - Graphics.SOE パッケージで Haskell Gtk ウィジェットを使用する

私は、Paul Hudak によるThe Haskell School of Expressionという本に取り組み、関連する gtk ベースのグラフィックス ライブラリ Graphics.SOE.Gtk (ドキュメントへのリンク) を使用して、小規模な 2D 描画実験を行っています。

ただし、このライブラリは非常に基本的なものであり、実際には図形を描画する機能しかありません。現在、ボタンやテキスト ボックスなどの特定の GUI ウィジェットを必要とするプログラムをいくつか書いています。私の質問は: gtk2hsにある GUI ウィジェットと一緒に SOE ライブラリの描画機能を使用することは可能ですか? たとえば、同じウィンドウ内の別のコンテナに三角形を描画するボタンをクリックできるプログラムを作成できます。

これを行う方法をオンラインで検索しましたが、ほとんどのチュートリアルでは cairo を使用して Gtk でグラフィック描画を行うことを提案しています。SOE グラフィックの API は、比較的自己完結型のように見えます。

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

user-interface - ユーザーがテキストの入力を停止したときに関数を実行する

Haskell のgtk2hsライブラリを使用して小さな GUI アプリケーションを作成しており、現在その中の複数行のテキスト ボックスを操作しています。ユーザーがテキストボックス内のテキストを変更したときに実行したい機能がありますが、ボタンをクリックしてアクティブにする必要はありません。

さらに、それはかなり侵入的で処理集約的な機能 (グラフィックスの描画、ファイルのロードなど) であるため、ユーザーが変更を行うたびに起動しないようにしたいと思います(おそらく、テキスト バッファーのbufferChangedシグナルで実行できます)。推測ですか?) しかし、変更の間に数秒間停止すると.

基本的に、範囲ウィジェットが更新ポリシーをcontinuousまたはdelayedに設定できる方法に類似した何かがgtkにあるかどうか疑問に思っていますが、テキストボックスの場合