問題タブ [pygobject]

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

python - GtkBuilder を使用して信号を自動的に接続するとダイアログが壊れるが、信号を手動で接続すると機能する

ダイアログを閉じるボタンと閉じないボタンがあるダイアログ ウィンドウが必要です。これを行う方法は、responseからの信号を使用してダイアログGtk.Dialogを呼び出すことです。emit_stop_by_name('response')(誰かがこれを行うためのより良い方法を知っている場合、それはこの質問の残り全体を先取りする可能性があります。)

これは、PyGTK を使用したときに機能しました。私は今 PyGObject に移行しています..この手法は、を使用するのではなく、手動で応答信号に接続する場合にのみGtk.Builder.connect_signals()機能するようです。

しかし、私の言葉を鵜呑みにしないでください。これが私の問題の最小限の例です:

これを実行すると、ボタンが 1 つだけのウィンドウが表示されます。そのボタンをクリックすると、「ダイアログを閉じない」というラベルの付いた 1 つと「ダイアログを閉じる」というラベルの付いた 2 つのボタンを含むダイアログがポップアップします。上記のコードを実行すると、両方のボタンがダイアログを閉じます。

Gtk.Builder.connect_signals()ただし、使用から手動で信号を接続するように変更した場合は、

その後、設計どおりに機能し始めます(「ダイアログを閉じない」ボタンはダイアログを閉じません)。

しかし、これらの 2 つの行は、このコンテキストでは機能的にまったく同じであるべきではないでしょうか? 2 つのシナリオの違いを理解する方法はありますか?

から CLI にテキストがまだ出力されているため、両方の状況で信号がまだ接続されていることがわかりますDummyDialog.on_response。しかし、widget.emit_stop_by_name('response')GtkBuilder を使用すると、一部が機能しなくなったようです。

さらに困惑するのは、この正確なコードを取得して PyGTK ( に変更) で実行すると、両方のシナリオで (またはを使用しfrom gi.repository import Gtkて) 正しく動作することです。import gtk as Gtkself.builder.connect_signals(self)self.dialog1.connect('response', self.on_response)

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

python - PyGObject からキーファイル設定バックエンドを使用するには?

GIO (GLib の I/O ライブラリ) には、キーファイルを使用する GSettings のバックエンドがあります。C から、システム レジストリの代わりにキーファイルを強制的に使用するために、このバックエンドのインスタンスを作成できg_keyfile_settings_backend_new()ますg_settings_new_with_backend()#define G_SETTINGS_ENABLE_BACKENDただし、これを行うには、バックエンドの公開 API が不安定であるため、コードを作成する必要があります。

PyGObject を使用して Python からこれを実行したいと思います (この用語は紛らわしいため、明確にするために、これは GTK 3 で使用される GObject イントロスペクション ライブラリであり、PyGTK および GTK 2 で使用される PyGObject ではありません)。

ただし、g_keyfile_settings_backend_new()in に対応する機能はありませんdir(Gio)。バックエンドをインスタンス化しようとすると、

それで、誰かポインタがありますか?それとも、Python モジュールがコンパイルされておらずG_SETTINGS_ENABLE_BACKEND、運が悪いのでしょうか?

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

python - pyGObject透過カーソル

PythonGTK3とpyGObjectを使用して透明カーソルを取得するにはどうすればよいですか。私はインターネットを高低で検索しましたが、何も見つかりません。pixmapを使用した例をたくさん見つけましたが、pyGObjectにはpixmapがないと思います。pixmapに代わるものに関するドキュメントが見つからないようです。私が立ち往生しているのを手伝ってください。

ありがとうサム

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

gtk - GtkClutter Actor シグナルが起動しない

GtkClutter を使用してアプリを作成しようとしていますが、アクターにシグナルを発させることができません。ここにサンプルがあります

すべてのシグナルは正常に機能していますが、「ボタンを押す」や「モーション」などのマウス シグナルがクラッター アクター (MyRect/MyCanvas.stage) オブジェクトで発生しません。サブクラス化をあきらめて、ストッククラスですべてを行ったとしても。

GtkWindow または GtkEmbed では、マウス イベントが ClutterStage に伝達されないようになっていると思います。

簡易版

Clutter のみを使用すると、ステージと俳優がマウス信号を発します。GtkClutter.Embed を使用してステージを GtkWindow に埋め込むと機能しません

アップデート

C言語のhttp://www.openismus.com/documents/clutter_tutorial/0.9/docs/tutorial/html/sec-stage-widget.htmlの例を実行しようとすると、完全にうまく機能しますが、 python ( https://gist.github.com/1759658 ) はまったく機能しません。

機能しないということは、ステージが「ボタンを押すイベント」を発生させないことを意味します

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

python - python gir / Gtk.Image:なぜそれが私の画像を破壊するのですか?

Gtk.Imageオブジェクトを返す外部APIを使用しています。そのGtk.Imageをファイルに書き込もうとしています。問題を説明するために、次のコードを作成しました。

ファイルはディスクに書き込まれますが、破損しています。なぜ破損しているのですか?

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

python - Geditサイドパネルを更新する

私は最初のgeditプラグイン、サイドバー用のディレクトリブラウザを書いています。

cwdの内容をサイドパネルに表示します。

self._side_widget = self.get_dir()#Gtk.Treestoreobjを返します

self.side_panel = self.window.get_side_panel()

self.side_panel.add_item(self._side_widget、 "dir-browser"、 "Directory Browser"、None)

self.side_panel.activate_item(self._side_widget)

ファイルをダブルクリックして、geditでドキュメントを開きます。

ディレクトリをダブルクリックしてディレクトリを変更し、サイドパネルのコンテンツを更新したいと思います。

self.get_dir()を使用して、現在の作業ディレクトリから新しいツリーストアを構築できますが、self.side_panelを更新する方法がわかりません。

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

python - Python、Django、およびイベント ループ (定期的なジョブ)

Debian Linux で Django + WSGI + Apache を使用するサーバー用の Python アプリケーションを開発しています。アプリケーションには、Web インターフェイスとコマンド ライン インターフェイスがあります (まだ django モデルを使用しています... ビューとテンプレートを使用していません)。
データベースのバックエンドは SQLite3 です。

このアプリケーションは、いくつかのジョブを定期的に実行する必要もあります。python-gobject と python-glib を使用する UNIX ライクなデーモンを作成し、これらのジョブを次のように実行します。

テストしたところ、sqlite db に書き込まれたデータに奇妙な問題がいくつかあります。これは、単一の sqlite db に対して読み書きを行う 2 つの Python インスタンスがあるためだと思います。1 つは apache+wsgi 用で、もう 1 つは自分のデーモン用です。(または、コマンド ライン インターフェイスを使用する場合、イベント 3 の Python インスタンス)

私の質問は、私に何をするように勧めますか? これらの timeout_add と MainLoop を「dj_survey.wsgi」に入れ、Apache の起動時に実行しますか?

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

python - PyGobjectを使用してカスタムGtkCellRendererを作成する

私はGtkアプリケーションを書いている最中です。私がpygtkを使用していることを知るまでは、PyGobjectを優先して非推奨になっているため、切り替えることにしました。pygtkの時代に戻ると、gtk.GenericCellRendererを拡張できましたが、このクラスはもう存在しません。

新しいAPIを使用するPythonの例を見つけようとしましたが、失敗しました。開始点として使用できるカスタムセルレンダラーの例を誰かに見せてもらえますか?

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

python - 関数を介してTextBufferにテキストを挿入する - python

次の問題があります:

テキストバッファにテキストを挿入するにはどうすればよいですか?

Interface.py

そして、「DrawCommandView」をファイルにインポートします

Commands.py

しかし、私はこのエラーを受け取り続けます:

ご協力いただきありがとうございます!

挨拶