問題タブ [libsigc++]
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.
c++ - ラムダ関数を使用した C++ libsigc++ シグナルの処理
シグナル伝達 (イベント処理) にlibsigc++を使用する C++ コードに取り組んでいます。
私は C++ の初心者で、C# で考える傾向があります。C# で必要なものと同等のコードは次のようになります。
libsigc++ チュートリアルは、関数またはメンバーをシグナルにバインドする方法を示すのに優れていますが、実際にはクライアント内に非公開でカプセル化する必要があるような単純なメソッドに対して、新しいクラスレベルのメソッドを定義したくありません。少なくとも私の考えでは。
libsigc++ API はラムダ式をサポートしているようですが、それらの使用方法を示す例は見つかりませんでした。誰かが私を助けることができますか?私は C++ の初心者であることを忘れないでください。
c++ - sigc ++のラッパークラスを作成する方法は?
新しい信号を登録したり、信号に接続したりするための中心的な場所が必要です。今私はsigc++を使うことを考えました。ただし、このテンプレートベースのライブラリのラッパークラスをコーディングする方法がわかりません。次のようなもの:
何を置き換える必要がありますか?マップを汎用化するために使用しますが、指定されたIDに応じたシグナルを取得し、指定されたparamlistを使用してシグナルを送信することもできます。これも処理方法がわかりません。
c++ - 独自の名前空間でのコンパイルの問題sigc++/ gtkmm
プロジェクトに独自の名前空間があるので、gtkmmを使用してGUIを含めたいと思います。
このメソッドを実装しようとするまで、すべて機能します。
pkg-config --cflags gtkmm-2.4
次に、とを使用してConfig.cppをコンパイルしpkg-config --libs gtkmm-2.4
ます。
コンパイラは最終的に次のメッセージをスローします。
問題が本当にライブラリsigc++に関連しているのか、それとも単なる名前空間の問題なのかはわかりません。名前空間なしで同じファイルを別のファイルにコンパイルすると、機能しました。
よろしくお願いします。
compilation - GTKmm クロスコンパイル中の sigc++ エラー
ここから簡単な GTKmm プログラムを作成し、mingw クロスコンパイラを使用して Windows 用にクロスコンパイルしようとしましたが、失敗しました。私の出力はこちらです。
GTK gtk.h ヘッダーだけを使用して単純なプログラムをコンパイルすると、完全に機能します。(同じコマンドを使用して) コンパイルし、Windows で実行します。
Fedora LXDE スピンを実行し、GTKmm-2.4 (win から) を使用しています。
他のすべては問題なく動作します。UNIX GTK と GTKmm ではコミレートできますが、Win では GTK だけです。PKG_CONFIG_LIBDIR を適切に設定しました (UNIX 用と Win 用に 1 つずつ)。
アドバイスをありがとう - Yum Extender から新しい libsigc++ をインストールしようとしましたが、何もしませんでした。
gtk - GTK activate_linkはラベルuriで機能しませんか?gtkmm Gtk :: Labelとsignal_activate_link()?
私はハンドラー関数を持っています:
そして私は接続します
なぜそれがうまくいかないのか分かりません。Googleをクリックすると、私のものではなく、デフォルトのURIハンドラーを使用していることがわかります。
gtk - 9 つのボタンの単一ハンドラー (gtkmm-2、libsigc++)
9 つのトグル ボタン(3 行と 3 列)を持つウィジェットを作成しようとしています。ユーザーはそのうちの 1 つを選択できます。そこで、現在選択されているボタンを無効にして選択を保存する9 つのイベント ハンドラーを作成しました。
これらの 9 つのトグル ボタンを 1 つのハンドラーに接続する方法があるかどうか、およびどのボタンがシグナルを発したかを知る方法があるかどうかを知りたかっただけです。QTに似たもの
これにより、私のコードで多くの繰り返しが回避されます。タイトルにあるように、私は gtkmm バージョン 2 ともちろん sigc++ を使用しています。
アドバイスありがとう
c++ - libsigc++ とシグナルとしての関数をスロットとして別の関数に接続する
シグナルスロットに libsigc++ を使用するのは初めてです。正常に動作している 2 つの関数があります。私のシナリオ: ソケットに recv のデータがある場合に true を返すブール関数として関数を作成しました。
だから、ネットからデータを取得する関数を書きました:
私は UDP サーバーを持っていて、コンストラクターですべてを初期化します。したがって、isDataReady() が true になるたびに、readDatagram 自体が実行されることを通知する必要があります。libsigc++ でどのようにコードを記述しますか? 私は彼らのチュートリアルを読みましたが、そのチュートリアルは func as sig について述べていませんでした。
c++ - libsigc は gtkmm プロジェクトにどのように含まれていますか?
gtkmm チュートリアルのhello world の例では、libsigc++
ライブラリがhelloword.cc
ファイル内で使用されています。
ただし、libsigc++
このファイルには含まれていませんが、それでも正しく機能します。sigc
名前空間はどこから来たのですか?
編集:
helloworld.h
:
c++ - sigc ライブラリに関連してラムダを使用する
gtk++でgoocanvasと連携してラムダ式を使いたいです。私の理解では、これは、ラムダを sigc++ ファンクターに入れることができなければならないことを意味します。
私はそのようなことを試しました:
しかし、これはコンパイルされません。
sigc ++中間体なしでラムダまたはより良いgtkmmでsigcを直接動作させる機会はありますか:-)