問題タブ [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.
javascript - Gnome GJS エラー: Gdk.Keymap.get_modifier_state は関数ではありません
キーボード修飾子の状態を取得しようとしています。この GDK の例を Gnome GJS に移植して、Gnome 拡張機能で使用します。
以下のコードは、https://developer.gnome.org/gnome-devel-demos/stable/hellognome.js.html.enの公式デモを変更したものです。
この問題は、正常に実行Gdk.Keymap.get_modifier_state()
される関数ではないと報告されていGdk.Keymap.get_default()
ます。
おそらく、JS で構造パラメーターを持つ関数を使用する際に何かが欠けています。(私はJSに精通していません)。では、私のコードの何が問題なのですか?
コード:
エラーメッセージ:
ただし、次のようなドキュメントで確認できます: http://www.roojs.org/seed/gir-1.2-gtk-3.0/seed/Gdk.Keymap.htmlおよび GIR マッピング/usr/share/gir-1.0/Gdk-3.0.gir
:
問題がイントロスペクションバインディングにあるかどうかを確認するために、Pythonで試しました。とにかく、それはうまくいきます。
python - スタンドアロンの Gtk.Menu ポップアップが event.time なしでは機能しない
pygtk で作成したプログラムを移植しようとしています。これは、特定のプログラムとコマンドを実行するためのグローバル ショートカット (キーバインダーを使用) を介して起動されるポップアップ メニューです。このプログラムにはメイン ウィンドウはありません。要点は、必要なときにいつでもどこでも使用できる、シンプルで高速で軽量な「ランチャー」を用意することです。
古い menu.popup は、event.time として 0 を使用した場合でも機能していました (keybinder は、時間を要求するイベントを提供しないため) が、現在、次のエラーが発生しています:
Warning: The property GtkStatusIcon:stock is deprecated and shouldn't be used anymore. It will be removed in a future version.
self.icon.new_from_stock(Gtk.STOCK_OPEN)
これは、問題を示すために作成した例です。
この例では、ステータス アイコンをクリックしてメニューを取得できますが、キーボード ショートカットを使用すると前述のエラーが表示されます。
注: ストック アイコンが機能しません。新しい API についてはまだ学習中です。
perl - Moo 以外のクラスから継承した Moo オブジェクトが、一部のモジュールの親のパッケージにブレスされるのはなぜですか?
GObject IntrospectionとMooを使用して Perl で Gtk3 アプリケーションを作成しようとしています。Gtk からの非 Moo クラスがありGtk::ApplicationWindow
、これを Moo を使用してサブクラス化しextends 'Gtk::ApplicationWindow'
ます。問題は、そのサブクラスのオブジェクトが作成されたときに、親クラスの型のままであるということGtk::ApplicationWindow
です。
代わりに、独自の非 Moo ベースのクラスをサブクラス化して同じことを試みましたが、このサブクラスから作成されたオブジェクトは正しい型です。この違いの理由は何でしょうか?
python - Gstreamerでストリームサイズを読み取る方法は?
1. 文脈
私は非常に単純なパイプラインを持っています:
ENCODER
任意のgstreamer
エンコーダであり、MUXER
任意の適切なマルチプレクサです。パイプラインは機能しています。簡単にするために、からのオーディオ ストリームが 1 つだけであると仮定しdecodebin
ます。
2.問題
今、
- オーディオ ストリームの合計サイズ(つまり、生の PCM サイズ)をバイト単位で照会するにはどうすればよいですか?
decodebin
- 直後にオーディオ ストリームの合計サイズ(つまり、生の圧縮サイズ)をバイト単位で照会するにはどうすればよいですか?
ENCODER
3. 試したこと
私はGIでPythonを使用しています。appsink
次のパイプラインを使用して、要素を試してみましたが、役に立ちませんでした。
関連する部分appsink
は次のとおりです。
ただし、これは本当に遅いです (単に を使用するよりも 20 倍遅くなりますfilesink
)。
introspection - GObjectIntrospection を使用した GnomeKeyring への非同期呼び出し
電話(または電気)などのプリペイドカードの現在の残高を表示するgnome-shell拡張機能を作成しています。これには特定のサービスの資格情報が必要なため、パスワードを gsettings に保存するのではなく、gnome キーリングのエントリとして保存します。
現在、キーリングにログインとパスワードを要求する同期方法を使用しています
この同期。アプローチの弱点は、キーリングがすでに開いている必要があるか、パスワードダイアログが表示されることです。自動ログインで gnome-shell を起動すると、この同期呼び出しはシェルの実際の起動をまったくブロックするため、キーリングのパスワードを入力する可能性はありません。
Gnome Developer Wikiは非同期メソッドに名前を付けています
- GnomeKeyring.unlock
- GnomeKeyring.find_items
しかし、どちらもjavascript 環境では見つかりません。
非同期関数が欠落していないことを確認するには、fedora23 の下の GnomeKeyring-Gir ファイルをどこで見つけることができますか? 非同期のキーリングのオープンとパスワードの取得を実現するにはどうすればよいですか? まったく異なる可能性のあるアプローチを見ている人はいますか? 少しずつ助かる…
python-3.x - PyGObject GTK+ GLib.Date strftime()
Poppler でメソッドを呼び出すとGDate
、Python コードでオブジェクトが返されます。このオブジェクトをきれいに印刷する方法が見つかりません。
Python GI API Referenceに従って、次のことを思いつきました。
ただし、これはバッファに何も配置しませんが、書き込まれたバッファ サイズを出力します。
宛先バッファにアクセスするにはどうすればよいですか?