問題タブ [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.
gtkmm - このgdk_get_pixmapの呼び出しには何が必要ですか?
小さな描画領域クラスを作成しましたが、exposeイベントのコールバック中に描画するためのピックスマップが必要です。しかし、コンパイルしようとしたパラメーターを取得できません。コードの関連部分は次のとおりです...
クラス定義...
と公開コールバック...
c++ - C++ gtk 複数のウィンドウを開く
私はまだこのリンクの例に取り組んでいます: gtkmm statusicon quits after creation トレイバーの別のウィンドウを開くようにこの方法で関数を変更しましたが、何も表示されません。
「Gtk::Main::run(w);」ですべてのウィンドウを実行しようとしました。それは機能しますが、ウィンドウごとにメインループを実行したくありません。
c++ - エリアの描画とイベントの公開
描画領域を含むダイアログがあります。描画領域の通常の自然なように、ダイアログが拡大、縮小、または埋められて露出された場合は、描画領域の内容を再描画したいと思います。この目的のために、私はメソッドを作成しました
クラスで。ただし、このイベントが存在すると、ダイアログ上の他のすべてのウィジェットが正しく描画されなくなります。おそらく、それらが公開されたときにも呼び出されます。描画領域のみを更新し、他のすべてのウィジェットをそのままにしておく関数を作成するにはどうすればよいですか?
c++ - 描画領域に一時的な「選択」長方形を描画する
Gtk DrawingAreaウィジェットに複雑な描画があり、その上で長方形を選択して拡大して拡大する方法をユーザーに提供したいと思います。長方形を選択できるように、必要なマウスボタンイベントを整理することができましたが、実際の長方形をディスプレイに描画し、マウスと一緒に移動することが望ましいでしょう。下にある描画を邪魔することなくこれを行う方法を知る必要があります(つまり、下にある画像を再描画することなく、サイズと形状が変わるときに一時的な長方形を消去できます)。
誰かがこの効果の正しい名前を教えてもらえますか(私がグーグルできるように)、または誰かが例、またはGtkドキュメントを検索するためのキーワードを知っていますか?
ありがとうございました。
gtkmm - アプリケーションをロックせずに Gtk::TreeModelColumn を大きなデータセットで埋める方法
Gtk::TreeModelColumn に大規模な (おそらくそれほど多くない - 数千のエントリ) データセットを入力する必要があります。アプリケーションをロックせずにそれを行うにはどうすればよいですか。処理を別のスレッドに入れても安全ですか? では、アプリケーションのどの部分をロックで保護する必要がありますか? Gtk::TreemodelColumn クラスだけですか、それとも Gtk::TreeView ウィジェットに配置されているのでしょうか、それとも周囲のフレームやウィンドウでさえありますか?
gtk - 2 つの子を持つように Gtk Box を設定する方法
2 つの要素のみを含む Gtk::HBox があります。ただし、コンストラクター new Gtk::HBox() は 3 つの要素を持つボックスを作成するため、ウィンドウを表示すると、Gtk が 3 番目の要素を配置することを期待する醜いスペースがあります。
Gtk api を使用すると、子の数を簡単に設定できると思いましたが、そうではありません。Glade では 2 つの要素を持つ HBox を作成できるので、おそらく作成できると思いますが、今度は C++ コードで作成する必要があります。
このような単純な質問に対する答えが Google で見つからないのは非常に奇妙です。
gtk - gtkmm ウィンドウ クラスを継承する
gtk ウィンドウ クラスを継承するにはどうすればよいですか。そうするためにどのヘッダーファイルをインクルードする必要があるか。
前もって感謝します、iSight
gtk - グレードで関数名を指定した場合、手動で gtk シグナル ハンドラーをアタッチする必要がありますか?
私はgtkmmとgladeを使用して、最初のgtkプログラムを書いています。私は filechooserbutton を作成しましたが、それには file-set というシグナルがあります。そのため、ファイルが選択されたときに呼び出したい関数名であると想定しているものに設定しました。しかし、ここに表示されます: http://library.gnome.org/devel/gtkmm-tutorial/unstable/sec-builder-accessing-widgets.html.en
ダイアログ ウィジェットを手動で取得し、コードでボタン シグナル ハンドラーを設定していること。それを行う正しい方法はどれですか?
そして、私がここにいる間、良い例へのリンクは便利ですが、それらはほとんどないようです. ありがとう。
gtk - 私はグレード gtkbuilder と接続信号で明らかな何かを欠いています。ヘルプ?
私はグレードで私のインターフェースを作ります。よく働く。私は、gtkbuilder を呼び出してグレード ファイル内のすべてをレンダリングする小さな小さなメイン関数を作成します。
さらにうまく機能します。次に、ウィジェットを取得します
それで?シグナルハンドラを接続するために私が見つけたすべての例は、gtkbuilder によってビルドされたものではありません。独自のクラスをインスタンス化してボタンを表現/処理/レンダリングする場合、シグナル ハンドラーをボタンに接続するのは簡単ですが、私は gtkbuilder を使用しており、ウィジェットにアタッチできる関数を作成する方法がわかりません。ボタン オブジェクトを作成したのは私ではなかったので、gtkbuilder が作成しました。
gtkbutton のサブクラスに関数を記述させてから、それを指すようにしますか? しかし、私のクラスは gtkbuilder によってインスタンス化されていません。
私はそれを理解していません。ヘルプ?
c++ - 非常に単純な gtk+cairo プログラムで Windows XP がクラッシュする
Visual Studio 2005 を使用して Windows Vista で gtkmm を使用して Gtk アプリケーションを開発しています。アプリケーションは開発マシンでは問題なく動作しますが、Windows XP マシン (Service Pack 2 と 3 の両方) で実行した後にクラッシュ レポートを受け取りました。http://live.gnome.org/gtkmm/MSWindowsに記載されているディレクトリ構造でアプリを配布しましたが、これまでのところ問題はありませんでした。
クラッシュは、Windows がエラーを報告するかどうかを尋ねる以外、エラー メッセージを表示しません。
この問題を解決するために、異なるバージョンの gtkmm (最新の安定バージョン gtkmm-win32-devel-2.16.0-4 と古いバージョン gtkmm-win32-devel-2.10.11-1) に対してプログラムをコンパイルしようとしました。しかし、問題は解決しませんでした。
Gtk::DrawingArea の on_expose_event 内で window->create_cairo_context() を呼び出して問題を突き止めました。この呼び出しをコメントアウトすると、問題はなくなります。そこで、次の最小限のプログラムを作成しましたが、それでもクラッシュします。
この最小限のアプリは問題なく実行してウィンドウを表示できますが、ウィンドウを画面の制限外に移動したり、十分な回数最小化/最大化したりすると (on_expose_event の呼び出しがトリガーされます)、最終的にクラッシュします。最初はクラッシュしない場合もありますが、アプリを再起動し、上記のように on_expose_event を複数回呼び出すとクラッシュします。私が気づいたことの 1 つは、「Get cairo done」を印刷した後にアプリがクラッシュすることです。create_cairo_context の呼び出しをコメント アウトすると、問題が解消されるので、この行に何か問題があると確信できます。
このエラーは、クリーン インストールされた Windows XP マシンで発生します。Windows XP を搭載した同僚のノートブックで両方のアプリ (オリジナルと最小) をテストしましたが、クラッシュしませんでした。私たちのコンピューターでは利用可能/最新の依存関係があると思いますが、アプリケーションがクラッシュするコンピューターには依存関係がありません。問題のあるマシンの 1 つに DirectX を更新し、Visual Studio C++ 2005 Redistributable をインストールしましたが、問題は解決しません。
DrawingArea にグラフを描画する元のアプリも、必ずしも最初にクラッシュするとは限りません。再起動後の初回は正常に動作する場合がありますが、2 回目は失敗する可能性が高くなります。
問題が解決するかどうかを確認するために、MinGW でコンパイルしてテストすることを考えています。また、デバッグ バージョンをコンパイルして、デバッガーを使用してみます。Dependency Walkerによると、libcairo-2.dllがこのdllに依存していることを見て、gdi32.dllのバージョンに何か関係があるのではないかと疑っていますが、今のところそれは単なる推測です. それ以外は、私はアイデアがありません。
とりあえず、これらのアイデアを試してみます。うまくいけば、誰かがより多くの提案をしたり、上記のコードで何が起こっているのかを知っています.