問題タブ [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.
python - python gobject.timeout_add によって設定されたタイマーを設定解除するには? スレッド?
スレッドにタイマーを設定し、gobject.timeout_add によって設定されたタイマーの設定を解除したいときにそのスレッドを強制終了したいのですが、これは良い方法ですか?
基本的には180秒ごとに関数を実行したいのですが、いつでも停止できるようにしたいです(別の関数から呼び出されます)。これを適切に達成する方法は?
スレッドを殺すことは悪いことだと読みました! このような単純なタスクはどれほど悪いのでしょうか?
gtk - Gdl.DockからGdl.DockItemを削除するにはどうすればよいですか?
私はGObjectイントロスペクションを使用してPythonでlibgdlを使用しています。Gdl.DockからGdl.DockItemを削除する方法を知っている人はいますか?私はもう試した:
と
また、dockitemとその子ウィジェットを破棄してみました。これが行われる場所の例を見つけることができないようです。
python - Python で書かれた Gtk/GLib コードを単体テストする方法はありますか?
私は、PyGObject (Gtk の新しいイントロスペクション ベースのバインディング) を使用して小規模/中規模の GUI アプリケーションを作成中です。nose
モジュールをインポートし、さまざまな関数を呼び出して結果を確認するだけで、アプリのほとんどの機能をテストできる合理的なテスト スイートから始めました。
しかし、最近私はいくつかの Gtk 機能を利用し始めました。GLib.timeout_add_seconds
これは、タイマーが切れた後に指定されたコールバックを呼び出すだけの非常に単純なコールバック メカニズムです。私が今直面している問題は、アプリを使用するとコードが機能しているように見えることですが、テストスイートのカプセル化が不十分であるため、あるテストでクリーンな状態で開始されていることを確認すると、その状態が完全に踏みにじられていることがわかります。別のテストによって登録されたコールバック。具体的には、テストはファイルがロードされていないことを正常にチェックし、次にいくつかのファイルをロードし、ロード後にファイルが変更されていないことをチェックし、テストは失敗します!
何が起こっているのかを理解するのにしばらく時間がかかりましたが、基本的に、あるテストではいくつかのファイルが変更され (タイマーが開始されます)、保存せずにそれらが閉じられ、別のテストでは変更されていないファイルが再度開かれ、変更されていることがわかります。タイマーが切れた後、コールバックがファイルを変更しました。
モジュールをリロードするための Python のビルトインについて読んだことがreload()
ありますが、アプリをアンロードしてリロードし、新たなスタートを切ることができると期待していますが、機能していないようです。
アプリをサブプロセスとして起動し、いじってから、サブプロセスを終了して、新しい状態を保証する必要があるときに再起動する必要があるのではないかと心配しています。特にpygobjectコードの場合、これを簡単にするテストフレームワークはありますか?
python - PyGobjectアプリケーションアイコン
重複の可能性:
ubuntuアプリにアイコンを追加する方法
PyGObjectアプリのベースアプリケーションコードを作成しようとしています。アプリケーションアイコンを変更する方法がわかりません。
私はこのコードを持っています。
いくつかのサンプルコードを確認しましたが、その方法が見つかりませんでした。ポインタはありますか?
python - PyGObject イントロスペクション Gtk+ 3 を使用した GenericTreeModel?
Python3 で GenericTreeModel に基づいて独自の Gtk+3-TreeModel を作成しようとしていますが、次のエラーが発生しました。
AttributeError: 'gi.repository.Gtk' オブジェクトに属性 'GenericTreeModel' がありません
GenericTreeModel の名前は変更されましたか?
前もって感謝します。
python - Gtk3上のPyGObjectを使用したWebkitスレッド
gtkのメインスレッドとは別のスレッドでWebkitビューを読み込もうとしています。
PyGTK、スレッド、WebKitの例が表示されます
PyGObjectとGTK3をサポートするために少し変更します。
その結果、ウィンドウは空になり、「スリープ後」の印刷は実行されません。idle_add呼び出しは機能しません。唯一の作業部分は、メインスレッドでコメント化された呼び出しです。
python - Python と Gtk - どの GTK バージョンが使用されていますか?
これが私のコードです。どのバージョンの Gtk が使用されているかを知るにはどうすればよいですか。
ありがとうございました!
gtk3 - Gtk+3 で背景色 GtkBox を設定するには?
GTK+3 でアプリケーションを作成し、背景色を変更したいのですGtkBox
が、このコードではできません:
python - PyGObject Gtk.Entry プログレスバーの色を変更する
ウィジェットのプログレス バーの色を変更したいのですが、 をGtk.Entry
使用しても変更できませんGtk.Widget.override_color()
。これどうやってするの?
gtk - GTK+ 3.0: カスタムモデル項目で Gtk.TreeStore を使用するには?
Python で GTK アプリケーションを開発しようとしていますが、gtk.TreeStore
. 私の主な問題: 私はすでにいくつかの JSON を解析しており、基本的に Python リストと 2 種類のオブジェクトである独自のデータ構造を持っています。コレクションだけでなく、リストにも表示される可能性があります)。
私はすでに a の基本的な使用法に精通しており、TreeStore
アイテムを画面に正しくレンダリングすることができました。treestore は gobject 型しか格納できないという事実にどう対処すればよいかわかりません (gobject 型システムについてよく知らないので、この時点ではよくわかりません)。C のドキュメントには、次の (PixBuf を除く) 基本型がリストされています。これらは挿入可能で、Python データ型に自動的にマップされます。
例として、gtk_tree_store_new (3, G_TYPE_INT, G_TYPE_STRING, GDK_TYPE_PIXBUF); それぞれ int、string、GdkPixbuf 型の 3 つの列を持つ新しい GtkTreeStore を作成します。
さらに、任意のGType
. ドキュメントからのリンクは、この段落を直接指しています。
登録された型の一意の識別子を表す数値。
このトピックに関する私の調査はここで終わります。Google はほとんどが GTK 2.x のチュートリアルであり、str
andint
などを除く他のデータ型の挿入については何も見つけていません。
質問:
新しい GType (またはツリーストアへのカスタム データの挿入を可能にするその他のインターフェイス) を実装することは可能ですか? また、その方法は?
私はすでに派生しようとしましGObject
たが、役に立ちませんでした。2 つのデータ構造を同時に保持しないようにするにはどうすればよいですか?
つまり、解析結果と Treestore の重複情報です。混合コンテンツをどのように処理できますか?
私の場合、さまざまな追加情報を持つコレクションとアイテムがあります(ツリービューでは、子の有無にかかわらずノードとしてミラーリングされます)。
上記の質問が解決された場合、選択を処理するときの問題も解消されます。単純なタイプのようなものと一致したり、以前に挿入したアイテムと一致したりするstr
ことは困難です。int
そのような属性はキーである必要がありますが、解析結果をリストから検索することは効果的ではありません。
前もって感謝します!
質問に直接関係のない追加情報:
GTK 2TreeModel
のチュートリアルでこれを読むまで、カスタムを実装するのは実行可能な課題になると思いました。
ただし、これには代償が伴います。すべての改行文字を削除しない限り、有用なカスタム モデルを 1,000 行未満で作成することはまずありません。カスタム モデルを作成することは、思ったほど難しくはありません。特に、追跡するデータが大量にある場合は、より適切なコードが作成されるため、努力する価値は十分にあります。
これはまだ有効ですか?
http://www.pygtk.org/articles/subclassing-gobject/sub-classing-gobject-in-python.htmに出会いました。これは役に立ちますか? 多くのリソースは PyGTK 2.0 用です。非推奨。