問題タブ [gtkmm]

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

c++ - glibmmタイムアウト信号

私はgtkmmを使った小さなアプリケーション用のプラグインに取り組んでいます。私が取り組んでいるプラグインは、毎分後に特定の条件(日付が変更され、新しい日が開始された)をチェックし、条件が真の場合にいくつかのアクションを開始します。プラグインの初期化部分には、Glib::SignalTimeoutとsigc++を使用する次のコードがあります。

ここで、testCounterは初期化メソッドを含むクラスで定義された属性であり、CHECK_INTERVALは1分に等しい定数です。存在する他のすべての変数は、初期化コードとコールバックメソッドを含むクラスで定義されています。checkNewDayメソッドは、条件がテストされ、日が変更された場合にアクションが実行される場所です。

実際のアクションを使用する前に、上記の小さなテストコードを配置して、すべてがうまくいき、checkNewDayが1分に1回しか呼び出されないかどうかをテストしました。私が見つけたものは私を困惑させます。1分ごとに、stdoutに(少なくとも)10個のメッセージが出力されますが、変数は1分ごとに1回だけ増加します。

****** をちょきちょきと切る ****

毎分かそこらで新しい日をチェックしています

インクリメントする前

1分経過

毎分かそこらで新しい日をチェックしています

インクリメントする前

1分経過

**** をちょきちょきと切る ****

毎分かそこらで新しい日をチェックしています

インクリメントする前

2分経過

毎分かそこらで新しい日をチェックしています

インクリメントする前

2分経過

**** をちょきちょきと切る ******

テキストが10個(またはそれ以上)の異なるバッファに送信され、1分ごとに一度に印刷されたように動作します。誰かが私を啓発し、なぜこれが起こっているのかを理解するのを手伝ってくれるでしょうか。コールバックは1分に1回しか呼び出されないと確信しているからです。ありがとうございました!

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

multithreading - Gtk::TreeModel::Row を外部関数から更新する方法

現在、マルチスレッド アプリケーションを開発しています。TreeView を使用して、各スレッドの状態をスレッドごとに 1 行で表示します。主に次の 2 つのクラスがあります。

  1. TreeView を含むメイン GUI クラス
  2. スレッド処理のクラス

行 [m_Columns.m_id] のような形式の行の要素にアクセスできないため、Gtk::TreeModel::iterator を引数として 2 番目のクラスに渡すことは実行できません。外部関数で変更する要素はスレッド固有であるため、Glib::Dispatcher を使用することもできません。

では、外部関数から GUI を更新する実用的な方法はありますか?

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

c++ - Gtkmm textBuffer->insert 呼び出し時のセグメンテーション違反

C ++のgtkmmについて学んでいます。新しいテキスト行を追加するための単純な TextBuffer を取得するのに問題があります。TextViewer (メッセージと呼ばれる) と TextBuffer (textBuffer と呼ばれる) を含む HBox である OutputBox というクラスがあります。

以下は、OutputBox クラスの小さなチャンクです。

文字列を addText に渡すと、新しい文字列がバッファに追加されることを期待していますが、代わりに seg fault が発生します。

gdb を介して実行した後、エラーが gtkmm ライブラリから発生していることがわかります。

これが何を言っているのかもよくわかりません。クラスを間違って使用していると思います。

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

image-processing - OpenCVIplImageをGtk+/ Gtkmmで表示するにはどうすればよいですか?

小さなGtkmmアプリケーションで表示したい画像をIplImageとして持っています。それらをGtkが表示できるものに変換するにはどうすればよいですか?

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

gtk - finkはgtkmm2.4をリストしていません

私はgtkmmを使い始めようとしていますが、Macを使用しています。そこで、finkを使ってインストールしてみました。オンラインで見ると最新のようですが、コマンドラインで確認すると

gtkmm2のみがリストされます。私は先に進んでそれを試しましたが、それは実際にはgtkmm2.0ディストリビューションです。hello worldの例が失敗したことは言うまでもなく、これについては本当に最新の状態にしたいと思います。2.4を使用していないためだと思います。

finkでgtkmm2.4を見つけてインストールするにはどうすればよいですか?私はすべてが最新であることを確認しようfink selfupdateとしましたが、運がありませんでした。apt-get update

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

c++ - Gtkmm-「Gtk::ScrolledWindow」の「Gtk::DrawingArea」?

「gtkmm」を使ってGUIプログラムを作っています。「Gtk::DrawingArea」ウィジェットにいくつかのグラフィックを描画したいのですが、そのウィジェットを「サイズ変更可能」にしたいので、描画するときに「(0,0)」から「(50,50)」への線を考えてみましょう。 "ピクセル-描画領域はサイズ"(50、50)"の正方形にサイズ変更する必要があります。たとえば、「(0、0)」から「(100,70)」ピクセルに線を引く場合、描画領域のサイズを「(100,70)」の長方形に変更する必要があります。

そしてこれを行うには、「Gtk::DrawingArea」ウィジェットを「Gtk::ScrolledWindow」コンテナに入れます。

したがって、サイズが「(100、100)」の画像を描画領域に配置すると、適切なメンバー関数「Gtk :: DrawingArea :: set ___ size_request(100、100)」が呼び出され、サイズが設定されます。 (100、100)ピクセルへの描画領域。したがって、「Gtk::ScrolledWindow」がその中の「Gtk::DrawingArea」よりも「小さい」場合、スクロールされたウィンドウは「scrollable」に変わるはずです-しかし、問題は、それが機能しないことです!!!!!

それで、誰かが私にこれをどのように行うことができるか説明できますか?

ありがとう。

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

gtkmm - Gtkmm を使用してツリーを描画するには?

この抽象的なデータ構造を視覚化するために、木を描きたいと思います。

これを行うための既存のライブラリはありますか? 手動でカイロのコードを書きたくない...

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

c++ - 整数配列から gtkmm に画像を表示

グレー スケール イメージの整数配列があり、それをアプリケーションで表示する必要があります。gtkmm を使用して C++ でプログラミングしていますが、画像内の各ピクセルを表示してアクセスできるキャンバスのようなウィジェットが見つかりません。

0 投票する
4 に答える
3456 参照

linux - LinuxでのOpenGLのgtkmmとクロスコンパイル用のセットアップ

私はOpenGLを学び始めていますが、(Ubuntu)LinuxでOpenGLをセットアップする方法がわかりません。

私はこれが方法かもしれないと思います:

OpenGLは単なるグラフィック言語仕様(またはインターフェイス)であり、それを適切に使用するには、OpenGL仕様を実装するライブラリ(特定のOS用)をダウンロードする必要があります。

長い間検索し、複数のソースから検索した結果、Mesa3Dグラフィックライブラリが最適であることがわかりました。

SDL(Simple DirectMedia Layer)ライブラリも見つけましたが、グラフィック以外のすべてのもの(GUI、サウンド、キーボード、マウス入力など)のライブラリのようです。OpenGL仕様を実装するために必要なのはグラフィックライブラリだけです。

グラフィカルユーザーインターフェースとして私はGtkmmライブラリーを使用しており、これまでのところ「非常に満足」しているので、gtkmmをOpenGLに「接続」したいと思います。そのためにgtkmmライブラリーの拡張機能を見つけましたgtkglextmm。 GUIでOpenGLアニメーションをウィンドウ(またはGtkmm jargon)に描画できるようになりますDrawingArea(ただし、まだ試していませんので、うまくいくことを願っています:-))。

そして最後の問題は、LinuxからWindowsへのクロスコンパイルです(MinGWクロスコンパイラを使用)。これまでのところ、Gtkmmライブラリで行ったすべての作業を(LinuxからWindowsに)クロスコンパイルすることに成功しました。

OpenGLと組み合わせる場合、クロスコンパイルするのに問題はありませんか(たとえば、Gccコンパイラでコンパイルするときに何か特別なものをリンクする必要がありますか、それともWindows OpenGLライブラリをアプリケーションと一緒に配布する必要がありますか)?

私が正しい方向に向かっていることを確認したか、私がより簡単またはより良い方法で何かを行うことができるように私を正しい方向に向けたことをあなたが確認したことを非常に嬉しく思います。

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

opengl - OpenGL +gtkglextmm+空き地

「gtkmm」でプログラミングしていると、ウィジェット「Gtk::DrawingArea」があります。
そのウィジェットを「手動で」プログラムすることができます(つまり、コードを記述します)。または、よりエレガントな方法は、同じ「グラフィック」を実行できる「glade」ユーザーインターフェイスデザイナーを使用することです。

今、私は「gtkglextmm」ライブラリを介してOpenGLをgtkmmに接続しようとしています。そのライブラリには、ウィジェット「Gtk :: GL :: DrawingArea」がありますが、このウィジェットは ISNOT」で空き地にあります。

では、「glade」(「グラフィカルユーザーインターフェイス」の部分)を使用して「OpenGL + gtkglextmm」でプログラミングする方法はありますか?

ありがとう。