問題タブ [gobject]
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.
gtk - ユーザー名を渡すために `g_object_set_data` を使用する
私はg_object_set_data
event_box でユーザー名を設定するために使用しているので、コールバックで event_box ポインターで取得できます。
しかし、問題は、ポインターに割り当てられた文字列ではない user_name を設定していることです。
破棄されるのはローカル文字列 (ヒップに割り当てられていない) です。
そのため、ポインタを割り当ててから使用する必要があります。この event_box に 1 つの名前を関連付けたいだけです。
c - g_object_new には一致する g_object_unref が必要ですか?
アプリケーションでデスクトップ通知を表示するためにlibnotifyを使用しています。 を返します。これは、通知ライブラリの以降の関数呼び出しに最初のパラメーターとして渡す必要があります。notify_notification_new()
NotifyNotification*
notify_notification_free()
返されるポインタを解放するものはありません。のソースを調べたところ、notify_notification_new()
内部で a を実行し、 GObject*g_object_new()
を取得して として返すので、アプリケーションがクリーンアップを行うときに、 によって返されたポインタでa を呼び出す必要がありますか?NotfiyNotification*
g_object_unref()
notify_notification_new()
python - Python を使用した gobjects のラッピングに関する最新のドキュメント
gobjects の Python バインディングの作成に関する最新のドキュメントとチュートリアルを探しています。Web で見つけたものはすべて、不完全であるか古くなっています。
c - Gtk ウィジェットをコピーする良い方法はありますか?
C で Gtk ライブラリを使用して、(たとえば) Gtk ボタンを複製し、アプリの別の場所にパックする方法はありますか。同じウィジェットを 2 回パックできないことはわかっています。そして、このコードは明らかに機能しませんが、ボタンの浅いコピーを試みるとどうなるかを示しています。
vbox を作成してウィンドウにパックし、gtk_main() を実行する周囲のコードがあります。これにより、次のような理解しにくいエラー メッセージが表示されます。
同じように、独自の GObject (必ずしも Gtk ウィジェットではない) を作成する場合、コピー コンストラクターを作成する良い方法はありますか。オプションのフックを備えたインターフェイスであり、ほとんどがプロパティに基づいており、クラスの階層を何らかの方法で処理する必要があると考えています。
私はこれをしたいと思います:
GtkButton が理論上のコピー可能なインターフェイスを使用できる場合。
python - Vala ライブラリの Python バインディング
次のIBM チュートリアルを参照として使用して、vala ライブラリへの python バインディングを作成しようとしています。
私の最初のディレクトリには、次の 2 つのファイルがあります。
test.vala
test.override
test_wrap.c
次のコードを使用して python モジュール ソースのビルドを試みます。
build.sh
ただし、最後のコマンドはエラーで失敗します
これは pygobject のバグですか、それとも私の設定に何か問題がありますか? Pythonからvalaで書かれたコードを呼び出す最良の方法は何ですか?
編集: 余分な行を削除すると現在の問題が修正されましたが、python モジュールのビルドに進むと、別の問題に直面しています。次の C ファイルをディレクトリ内の既存の 2 つに追加します。
test_module.c
そして、次のスクリプトでビルドします
build.sh
エラーが発生します。
init_pygobject
シンボルはどこで定義されていますか? 何へのリンクを逃したのですか?
python - PyGTK/GObjectで列挙型プロパティを使用する
PythonでのGObjectの使用に関するこのチュートリアルでは、タイプのプロパティの使用についてのみ説明しますgobject.TYPE_FLOAT
。
列挙型を使用するように調整しました。
...しかし、実行しようとすると、次のエラーが発生します。
私は何が欠けていますか?
c - さらに登録された GCallback への GSignal の伝播を防止する
GSignalの最初のシグナルハンドラーコールバックからさらにシグナルハンドラーが呼び出されるのを防ぐにはどうすればよいですか?
たとえば、同じシグナル「mysignal」に対して func1、func2、func3 の 3 つの関数を登録します。func1 が最初に呼び出された場合、func2 と func3 が func1 から呼び出されないようにするにはどうすればよいですか?
これを永続化するべきではありません。ランタイムである必要があります。つまり、func1 は、取得した入力パラメータに基づいて、func2 と func3 がコールバックを取得できるかどうかを決定できます。
python - スクリプトの先頭に「gobject.threads_init()」がないとPython gstreamerがクラッシュするのはなぜですか?
gstreamer(pygstおよびgstモジュール)を使用してリプレイゲインタグを計算するPythonスクリプトを作成しましたが、さまざまなgobjectエラーで一貫性のないクラッシュが発生していました。スクリプトの先頭に次の定型文を配置することで、これを修正できることがどこかで見つかりました。
試してみましたが、うまくいきました。なぜこれらの行が必要なのか、そしてなぜpygst自体がこれを行わないのかを誰かが説明できますか?