問題タブ [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.
python - pygtk を使用して管理されていないソフトウェアを更新する
古いソフトウェアを機能させようとしています。これはスタンドアロンのデータベース クライアントであり、そのグラフィカル インターフェイスはpython-glade
python モジュールで記述され、使用/使用されていますgtk
。
最後に使用したのは 2、3 年前のことで、その当時は箱から出してすぐにインストールできました。さまざまなライブラリのどのバージョンで動作したかはわかりません。
最初は仮想環境で依存関係を分離したかったのですが、そのうちの 2 つはpygtk
とgobject
であり、Linux で使用してインストールするのは難しいようpip
で、同様の名前のグローバルにインストールされたライブラリのかなり汚い混乱になってしまったのではないかと心配しています。
ソフトウェアの元の作成者は、最近 gtk の開発をあまり詳しく追っていないと言い、 を に置き換えることをほのめかしていますが、そうするとimport gtk
、from gi.repository import Gtk; gtk = Gtk
ライブラリ モジュールでセグメンテーション違反が発生します。
とにかく、どこで入手できるかわかりませんgdk
、これも使用されています。
1 つの深刻な問題は、モジュール間の違いが明確にわからないことです: pygtk
、gtk
、gi.repository.Gtk
.
python - setup.py (および必要な C ライブラリ) で gi.repository への依存関係を宣言するにはどうすればよいですか?
gobject イントロスペクションを通じて、いくつかの C ライブラリに依存する Python アプリケーションをパッケージ化しています。少なくとも、glib の python モジュールがインストールされていることを確認したいと思います (つまり、Debian で python-gi としてパッケージ化された gi モジュールです。非推奨の PyGObject モジュールについて話しているわけではありません)。通常の依存関係として追加すると、Pypi にないため、インストールが失敗します。
これをどのように宣言すればよいですか?私はsetuptool docを見ましたが、何もうまくいきません。
ありがとう。
関連する質問:
python - PyGObject カスタム ウィジェット:無効化された領域を描画するには?
Gtk.DrawingArea
カスタム ウィジェットを作成するには、PyGObject でサブクラス化する必要があることを知っています。draw
次に、信号を次のようなコールバックに接続します。
再描画を要求するには、 を呼び出しますmy_widget.queue_draw()
。
これで、 を使用してサーフェスの特定の領域を再描画するように求められる可能性があることがわかりましたmy_widget.queue_draw_area()
。この後にコールバックが呼び出されたとき、on_draw
描画する領域をどうやって知るのでしょうか?
python-3.x - Travis-ci & Gobject イントロスペクション
Get Things GNOME用に Travis をセットアップしようとしています! . 私の.travis.yml :
ただし、ビルドは失敗します。
モジュールgi._gi
は package としてインストールする必要がありますpython3-gi
。
Travis がgi
モジュールをインポートできないのはなぜですか?
python - メニュー項目、UI マネージャーなどを使用しない Python Gtk+ 3 のウィンドウ/アプリのキー バインディング
Python の GTK3 と Cairo を、Cairo の出力を画面上に表示する最小限のプロット アプリケーションとして使用しようとしています。
典型的な使用法は、コマンドを実行すると、プロットが画面にポップアップ表示され、ファイルにも書き込まれます。理想的には「q」キーを押すだけでなく、一般的な Ctrlデフォルトの Alt-F4 に加えて -W と Ctrl-Q (実際にそれを定期的に使用している人はいますか?!?)。
また、ウィンドウ内の UI の乱雑さをできるだけ少なくしたいと考えています。理想的には、標準のウィンドウ サラウンドだけで、メニューやツールバーなどはありません。
それで...どうすれば「q」、「Ctrl-Q」などのキーバインディングをGtk.main_quit
a)煩雑なドロップダウンメニューバーを作成し、b)Gtk.UIManager
Python Gtk + 3が焦点を当てているヘビーウェイトを通過することなくバインドできますかドキュメントはこちら: http://python-gtk-3-tutorial.readthedocs.org/en/latest/menus.html。これが可能であり、多くのコードを必要としないことを願っています (少なくとも、すべてのメニューをセットアップするほどではありません!) が、オンラインのどこにも例が見つかりません。間違った用語、GTK初心者です。
残念ながら、このような最小限のアクセラレータのセットアップに関するドキュメントはないようです。また、アクセラレータ キーを構成するコードは、GTK2 と 3 で大きく異なるようです...助けてくれてありがとう。
python - python から vala コンストラクターを呼び出すにはどうすればよいですか? (GObject イントロスペクションを使用)
Python アプリケーションによって呼び出される共有ライブラリを Vala で記述したいと考えています。
そこで、それぞれ 1 つの関数を持つ 2 つのオブジェクトを使用して、この Vala ライブラリを作成しました。
唯一の違いは、Barはコンストラクターで引数を取るのに対し、Fooは引数を取らないことです。
そして、valac を使用して共有 ( .so ) ライブラリにコンパイルしました。Valac は.vapiと.girファイル
も生成しました。.girファイルから.typelibファイル
を生成しました。
次に、このライブラリを使用することになっている小さな Python アプリケーションを作成しました。
実行する前に、typelib とライブラリ ファイルの場所を Python に知らせるために、2 つの環境変数を設定する必要がありました。
export LD_LIBRARY_PATH=.
export GI_TYPELIB_PATH=.
タイプFoo (コンストラクターにパラメーターなし)のオブジェクトの作成は機能しますが、 Fooコンストラクター (Vala コード)の print ステートメントは実行されません。
Bar型のオブジェクトを作成したい場合、コンストラクターで文字列を省略しなければなりません。そうしないと、コンストラクターが引数を取らないと Python が文句を言います (引数を取るべきなのに!)
これ以外は、両方のオブジェクトが正常に機能します。引数を指定してオブジェクト メソッド (両方のオブジェクト) を呼び出すと機能し、すべてが正しく出力されます。
誰かが私が間違ったことを教えてもらえますか?
Python から任意のタイプの Vala コンストラクターを呼び出すことは不可能に思えます。
オブジェクトは作成されますが、コンストラクター コードは呼び出されません。