問題タブ [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.
haskell - Ptr () を SourceCompletionProvider に変換する
前の質問を部分的に解決しました。
GObject
現在、サブタイプを登録できます( hpasebindings-gobject
を参照) c'g_type_add_interface_static関数を使用して実装できます(ただし、まだ試していません)。SourceCompletionProvider
唯一の問題は、 からPtr ()
返されたc'g_object_newv
をgtk2hs
データ型に変換することSourceCompletionProvider
です。どうすればいいですか?ヒントはありますか?
SourceCompletionProvider
は次のように定義されます。
この定義は何を意味するのでしょうか? なぜ再帰的ですか?プロバイダーはForeignPtr
toプロバイダーです-私には奇妙に見えます。
ありがとう。
解決:
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にドロップすることもできます。
haskell - Haskell での GUI プログラミング - Ubuntu でのインストールの問題
まだ最新の GUI パッケージはありますか?
今日、wxHaskell と gtk2hs の両方をインストールしようとしましたが、どちらも解決できない依存関係で失敗しました (wxHaskell はいくつかの wxWidget ライブラリを見つけることができず、glade チュートリアル gtk2hs を試しているときに、私もインストールした pkg-config libglade2-0 が見つからないために失敗しました)。
Linux/cabal/パッケージのインストールを十分に理解していないのは私の問題だと思いますが、HaskellのGUIライブラリをどこかに開始(インストール)する最新のチュートリアルはありますか?
エラーは次のとおりです。
と
これは本当にイライラします - 誰かが私を助けてくれるかもしれません - ありがとう!
haskell - Haskell と GIO を使用してファイルを読み取るにはどうすればよいですか?
たとえば、Haskell と gtk2hs を使用して作成しているプログラムの一部を次に示します。
fileRead
メソッドはFileInputStream
インスタンスを返しますが、私の人生では、ドキュメントのどこにもインスタンスから読み取るメソッドを見つけることができません。GIO で対応する C メソッドは のはずg_input_stream_read
ですが、gtk2hs では実装されていないようです。
何か不足していますか?
haskell - 別のイベントハンドラーが必要(ボタンが押された)Gtk2Hs
に関数を追加したいので、イベントbuttonNewWithLabel
だけでなく、Enterキーが押されたときに反応します。onClicked
方法がわかりませんが、それほど簡単ではないはずonClicked
ですか?
私のコードピースは次のようになります。
そのような機能はありGtk2Hs
ますか?または...他に使用できるものはありますか?
haskell - haskellでglade xmlファイルを使用できません
初めての投稿なので、挨拶すべきかどうか迷っています。
とにかく、私はgtk2hs websiteからのグレードのチュートリアルに従っています。コードは適切にコンパイルされましたが、実行しようとするとこのエラーが発生します。
これは私のグレイドファイルです。
グレード ファイルは、ソース コードと同じディレクトリにあります。ソース コードは、チュートリアルのものからの正確なコピーです。私はこれまで空き地で作業したことがないので、何がうまくいかないのかわかりません。
ghc を 7.6 から 7.4.2 にダウングレードする必要がありました。私はグレード 3.14.1 を使用しています。他のすべてのパッケージは cabal 経由でインストールされているため、現在のバージョンになっています。
でインターフェースを切り替えると、最初と最後にまだ文句を言います。
そして、ウィジェットですべてのオブジェクトタグを変更すると、これが得られます
これを行うことでエラーが少なくなりますが、それでも機能しません。
haskell - Gtk2HsでDrawingAreaを使用したアニメーション
私はHaskellの経験があまりなく、Gtk2Hを使い始めたばかりなので、これはばかげた質問かもしれません。
次のLine
タイプを定義しています。
Line
そして、にsのリストを描画する関数がありますDrawingArea
。問題は、この関数がすべてのLine
sを同時に描画することですが、2つの秒の間に少し遅れて一度に1つずつ描画したいと思いLine
ます。
この関数は、DrawingArea
が公開されたときに呼び出されます。
StateT
まだ描画されていないものを追跡するためにを使用することを検討しましたLine
が、アニメーションの実装方法がわかりません。widgetShowAll
状態を変更してから毎回呼び出す場合でも、mainGUI
が呼び出されるまでウィンドウは表示されません。
drawCanvas
どういうわけか描画を処理しながら、状態を継続的に更新する新しいスレッドを作成することは可能ですか?もしそうなら、誰かがそのような行動の例を教えてくれませんか?それとももっと良いアプローチがありますか?
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 は、比較的自己完結型のように見えます。
user-interface - ユーザーがテキストの入力を停止したときに関数を実行する
Haskell のgtk2hsライブラリを使用して小さな GUI アプリケーションを作成しており、現在その中の複数行のテキスト ボックスを操作しています。ユーザーがテキストボックス内のテキストを変更したときに実行したい機能がありますが、ボタンをクリックしてアクティブにする必要はありません。
さらに、それはかなり侵入的で処理集約的な機能 (グラフィックスの描画、ファイルのロードなど) であるため、ユーザーが変更を行うたびに起動しないようにしたいと思います(おそらく、テキスト バッファーのbufferChangedシグナルで実行できます)。推測ですか?) しかし、変更の間に数秒間停止すると.
基本的に、範囲ウィジェットが更新ポリシーをcontinuousまたはdelayedに設定できる方法に類似した何かがgtkにあるかどうか疑問に思っていますが、テキストボックスの場合