問題タブ [gobject-introspection]

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

python - カスタム情報をウィジェットに保存する gobject-introspect

ウィジェットでカスタム情報を保存する方法はありますか?

たとえば、20 個の URL を含むリストがあるとします。

URLごとに1つずつ、合計20個のボタンを作成します。

ボタンをクリックするとURLが開くようにしたい。しかし、どのボタンがどの URL にリンクされているかを知る方法が必要なので、ボタンをクリックすると、その URL をイベント ハンドラ関数に渡して開くことができます。

これを達成するために私が考えた別の解決策は、Gtk.Button クラスを拡張するカスタム クラスを作成することでした。

次に、単純にボタン = MyButton(url) を実行できます

しかし、これはやり過ぎのようです。ウィジェット自体にカスタム情報を保存できるかどうか疑問に思っています。

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

python - Pythongtk3アプリケーションのデバッグ

私はpythonとgtk3でテキストエディタを書いていますが、ウィンドウを閉じると、glib内のどこかから漠然とした警告が表示され続けます。

どうすればこれをデバッグできますか?g_logvのブレークポイントから何かを学習できる可能性があることを期待して、gdbで実行しようとしましたが、ブレークポイントをトリガーせずに警告が表示されます。https://bugzilla.gnome.org/show_bug.cgi?id=670507のため、ログハンドラーを簡単に置き換えることもできません。

メッセージで参照されているPythonファイルを変更して、その時点で常にPythonバックトレースを出力するようにしようとしましたが、エラーが発生するかどうかに関係なく、すべてのgobjectメソッド呼び出しで呼び出されるため、困難です。結果を解釈するために、それでもどのポインタがnullであるかについては何も教えてくれません。

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

python - Gtk.TreeView (CellRenderer) の Gtk.Entry

Gtk.Entryを(Gtk.EntryCompletion接続して) を のセルにパックしたいGtk.TreeView。これを行う方法を知っている人はいますか?(表形式ビューのテキスト エントリで入力補完が必要なだけです。)

Gtk.CellRendererまたはをサブクラス化し、メソッド (または同様のもの)Gtk.CellRendererTextをオーバーライドする必要がありますか? start_editingサブクラス化の例を見つけることができますがGtk.CellRenderer、編集可能な動作を変更することはできません。Gtk.CellRendererTextクラスのソースコードも見つかりません。

私は Gobject イントロスペクション (すなわちfrom gi.repository import Gio, Gtk, GLib, Gdk) を使用しています。

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

python - Python GI Notify Gtk.main()を呼び出すにはどうすればよいですか?

Python通知アプリケーションを作成しようとしています。簡単に言うと、私がやりたかったことです
。1. Gmailアカウントを確認する
2.未読メールの数を示す通知を
表示する3.クロムを開くことを許可するボタンを表示する(システムコールを使用)

今のところ、すべてがうまく見えます。メールの確認部分はちょっと簡単でした。通知が1分ごとに表示されないように、未読メール数をシリアル化しました。新着メールがある場合にのみ表示されます。
私がブロックしているのは、ボタン信号を処理できるようにメインのgtkループを作成する方法がわからないことです。

これが私のコードです:

私の通知は、pygtkとpynotifyで正常に機能していたことを覚えています。コードを更新したいのですが、最後のコードを失ったので、それについての手がかりがありません。メインでGtk.main()を呼び出すと、プログラムを強制終了するまでブロックするだけです。

私はGnome3.6、Archlinux、python3.3を使用しています。
では、プログラムが終了する前にシグナルハンドラがクリックされるのを「待つ」方法を知っている人はいますか?実際には正常に実行されますが、通知が表示されたときにスクリプトが終了し、シグナルを待機しません。

どうもありがとう :)

編集:私の問題のもう少し詳細:ご覧の 最終結果
とおり、プログラムはすでに終了しており、シグナルを待機していません。それが私が今解決しようとしていることです。

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

gobject-introspection - g-ir-scanner が gir ファイルの生成に失敗する

非常に単純なライブラリから.gir ファイルを生成しようとしています。これは基本的に、GLib ドキュメントの GObject の例です。g-ir-scanner を使用すると、次のエラーで失敗します。

何がうまくいかなかったのか、私にはまったくわかりません。何か案は?

0 投票する
3 に答える
2176 参照

c++ - GObject Introspection での C++ バインディングの使用

プロジェクトでGofficeライブラリを使用することにしました。しかし、私は C++ で書いているので、GTK+ を直接使用するのではなく gtkmm を使用するのと同じように、C++ クラス インターフェイスを使用することを好みます。

ドキュメント (上記のリンクを参照) には、GObject Introspection を使用できると書かれています。それで私はそれを読み始めました。私は読んで読んで読んで、GOfficeのバインディングの使い方を理解できませんでした。私のシステムで、PackageKit によってインストールされたファイルのリストで、goffice gi-repository/typelib ファイルを探しました。何も見つかりませんでした。goffice または goffice-devel パッケージが gobject イントロスペクション パッケージに依存しているかどうかを PackageKit で確認しました。間接的に依存しているかもしれませんが、直接依存しているわけではありません (そうでなければ、リストに表示されます)。

何度も試してみましたが、GOffice などの GObject で記述されたライブラリを取得し、それを Python などの別の言語、または私の場合は C++ で使用する方法を簡単に説明できるリソースを見つけることができませんでした。もちろん、Cの関数を直接使うこともできますが、ポイントはgtkmmに似たインターフェースを持ちたいということです。

(私は GNU/Linux を使用し、gtkmm と GNU ビルド システム、goffice バージョン 0.10 でデスクトップ アプリケーションを作成しています)

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

python-3.x - Nautilus GIR を使用する必要がありますか? その場合、ドキュメントはどこにありますか?

私は、多数のファイル ブラウザのようなウィジェットを使用する Python3/GObject ベースのアプリケーションを作成しています。これらをゼロから作成するか、Nautilus で GObject Introspection を使用するのが最善の方法ですか? もしそうなら、どこでドキュメントを見つけることができますか、またはどのようにドキュメントを生成できますか?

私が見つけた Nautilus API ドキュメントはすべて非常に古く、実際には Nautilus-Extension API または他のコードのスニペットです。

編集: Nautilus の GIR バインディングは実際には拡張 API 用であり、Gtk 自体のような完全なバインディングは存在しないようです。

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

gstreamer - GStreamer を使用する Python で、ファイル オブジェクトを入力ソースとして使用するにはどうすればよいですか?

私は現在やっています:

しかし、を使用する代わりにuri、 from などの生のファイル ソースを使用するにはどうすればよいでしょうかsource_file = request.POST['file'].file。(おそらく、文字列からビデオ ファイルをロードすることになるでしょうか?)

これまでの調査でappsrc( http://ingo.fargonauten.de/node/447 ) にたどり着きましたが、ファイルをバッファにロードする方法がわからないため、 GStreamer 1.0で使用する方法がわかりません。 :

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

python - gobject-introspection オーバーライドによりインポート エラーが発生する

ubuntu raring の python2.7 で gobject-introspection を使用していますが、いくつかのパッケージのビルド中にインポート エラーが発生します。それを複製するための最小限の手順を分離しました。

  1. ローカル ディレクトリ構造を作成します。

    /li>
  2. 標準定型句を入れる

    両方の__init__.pyファイルにあります。

  3. のローカル コピーを含むディレクトリから、gi次のコマンドを実行します。

    /li>
  4. 次のようなエラー メッセージが表示されます。

    /li>

説明はありますか?gobject-introspection は非常に文書化されていないプロジェクトのように見えるため、意図した動作の適切な文書を見つけることができません。助けていただければ幸いです。

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

python - イントロスペクティブ バインディングによるコード補完

GObjectGTKおよび の他のさまざまなライブラリを使用してコーディングを開始したところgi.repositoryですが、インポート時のイントロスペクティブ バインディングが原因で、コード補完はどの IDE でも実際には機能しません。それを機能させる方法はありますか?

具体的にはPycharmを使用しています。

ありがとう。