問題タブ [gtkmm3]

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

c++11 - `Gtk::TreeView` にカスタム タイプを表示するように指示することは可能ですか?

Gtkmm 3 の使い方がわからないことがあります。

次のように宣言したカスタム ビジネス タイプがあります。

この型をas モデルGtk::TreeViewを持つにレンダリングしたいと思います。Gtk::ListStoreを宣言しGtk::TreeModelColumn<Eurocents>、モデルに追加します。次に、append_columnこのモデル コラムにGtk::TreeView適切なタイトルを付けます。

次にappend_rowモデルに移動し、列に対応する値を に設定します(Eurocents)100

私が得る結果は、セルが空で表示されるということです。当然のことながら、Gtkmm が私の任意の型をレンダリングする方法を知っているとは思わないからです。

タイプをレンダリングする方法について Gtkmm に指示したいと思います。

Glib::ustringGlib のような型を表示する方法と、表示用の書式設定が可能であることは既に知っていますGlib::ustringが、それは質問の対象ではありません。

このような任意の型を表示できる列をコーディングすることは可能ですか? もしそうなら、どのように?並べ替えを機能させるには何が必要ですか?

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

user-interface - GtkMM ボタン コールバックの引数として Char を渡す

これに似た質問がありますが、私の質問には答えません。GTKMM を使用して GUI を作成しています。ボタンのコールバックで単一の文字を渡そうとしています。

この文字は、グローバル変数に割り当てられますletter。しかし、私はポインターを理解していないので、これをかなり長い間機能させようとしてきましたが、成功しませんでした。

main.cpp

ウィンドウ.cpp

window.h

これを に置き換えたり* pointer&その逆を行ったりしmywindowましたが、うまく機能せず、どうすればよいかわかりません。

0 投票する
0 に答える
391 参照

c++ - GTKmm + リアルタイム グラフィックスの cairo アプリが頻繁にフリーズする

メイン ウィンドウがサーバーからリアルタイム データを受信し、このデータに基づいてプロットとヒストグラムをリアルタイムで描画する必要がある C++ アプリケーションを作成しています。私は GTK3 (実際には C++ バインディング gtkmm) と Cairo を使用しています。

特に、データはネットワークから 1 秒ごとに受信され、データが受信されるたびに、つまり 1 秒ごとに更新が行われます。更新は、描画領域全体に対して invalidate_rect() メソッドを呼び出すことによって行われます。その on_draw() は、新しく受信したデータを使用してすべての図とプロットを再描画します。

現在、アプリケーションは動作しますが、非常に信頼できません。特に、特に CPU 負荷が増加すると、頻繁にフリーズします。アプリケーションの CPU 使用率とメモリが非常に低いです。突然、ウィンドウが灰色になり、応答しなくなりました。ウィンドウを閉じるアイコンを押しても機能しないため、Ctrl-C でウィンドウを強制終了する必要があります。

私は疑問に思っています:上記のシナリオで invalidate_rect() を呼び出すのは間違ったアプローチですか? GTKMM/Cairo を使用して、信頼できる方法で滑らかなグラフィックを取得するためのより良い方法は何ですか?

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

c++ - GTK3 ツリービューでのテキストの折り返し

GTK3 で TreeView を取得してテキストを正しく折り返すのに問題があります。

このようにラップするように設定しました:

これは機能し、テキストは折り返されますが、ウィンドウのサイズを変更して大きくすると、長いテキストのセルの上下に醜い空白がたくさんあります。GTK は、ラップ幅に基づいてセルの高さを予約しているようです。これは私には意味がありません。

次のように必要な幅を計算して、signal_check_resize で必要な設定を回避しようとしました。

しかし、これではウィンドウを大きくすることしかできません。リサイズ後の縮小はできません。

問題は、これがどのように適切に行われるかです。

Arch Linux で gtk3.20.3-1 と gtkmm3.20.1-1 を使用しています。

編集:タイトルの誤字を修正...

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

opengl - GtKGLArea が OpenGL 2.1 コンテキストを作成できない

私は現在、ゲーム エンジン プロジェクトの単純なエディターに取り組んでいますが、プロジェクトはメイン ワークステーション (OpenGL 3.3+ をサポートする GTX 650Ti) で問題なく動作しているように見えますが、自分でテストすると壊れているようです。デスクトップのテスト (OpenGL 2.1 を最大サポートする GMA4500)。

gtk_gl_area_make_current()GL バージョンを 2.1 に指定しても、GtkGLAreaは OpenGL 2.1 コンテキストを作成できませんgtk_gl_area_set_required_version()

gtk glarea デモ ( https://git.gnome.org/browse/gtk+/tree/demos/gtk-demo/glarea.c ) をテストしてトラブルシューティングを試み、同じ結果を得ました。

すでにウェブで検索していますが、解決策につながるものはありません。誰かが ebassi の glarea の例で同じ正確な問題について言及していますが ( https://github.com/ebassi/glarea-example/issues/2 )

これに対する解決策はありますか?

オペレーティング システム: Fedora 23 GTK バージョン 3.18


編集: オペレーティング システム (Fedora 23) は OpenGL 2.1 を使用しています ( glxinfo で確認)。これをオーバーライドする方法はありますか?(以下の ebassi の回答によると、GdkGLContextコア プロファイルが利用できない場合、GTK+ 3.20 以降はレガシー プロファイルにフォールバックします。GTK+ 3.20 にアップグレードするとすぐにテストします)

編集 2: の代わりに SDL によって作成されたコンテキストを使用して回避策を作成できますが、OpenGL 2.1 で動作GdkGLContextするようにすることにまだ関心があります。GdkGLContext

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

c++ - gtkmm3 でボックスまたはグリッドを適切に使用する方法

ラズベリー pi で gtkmm3 を使用して単純な GUI を作成しようと必死になっていて、これに長い間苦労しています。ただし、プログラムを実行すると、セグメンテーション違反が発生するようで、理由がわかりません.グリッドの最後の行を取り出すと、機能します。私が間違っていることやより良いアプローチをしていることはありますか?

ヘッダー ファイル gui_ex.h は次のとおりです。

gui_ex.cpp:

main_gui_ex.cpp: