問題タブ [gobject]
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 オブジェクトを作成しましたが、シグナルを送信したいと考えています。gobject.GObject から継承させましたが、オブジェクトに新しいシグナルを作成する方法がないようです。
c - GObjectとGlibを学ぶ教材
私は C に慣れていますが、GObject
とGlib
forを学ぶ必要がありgstreamer
ます。私がネットで見つけたのはGobjectリファレンスマニュアルだけです。主な焦点はgstreamerであるため、Gobject/Glibのチュートリアルを探しています。
したがって、他のリソースを共有して、glib と gobject を学習してください。
python - gobject io モニタリング + ノンブロッキング読み取り
io_add_watch
Python で (gobject 経由で) モニターを使用する際に問題が発生しました。通知のたびにバッファ全体のノンブロッキング読み取りを実行したいと考えています。コードは次のとおりです (少し短縮されています)。
トリックは次のとおりです。デバッグ出力をアクティブにせずにプログラムを実行すると、got_message
呼び出しが行われません。最初に stderr に多くのものを書き込むと、問題はなくなります。このコードに表示される出力以外に何も記述しないと、stdin メッセージ シグナルを取得できません。もう 1 つの興味深い点は、stderr デバッグを有効にして同じアプリを実行しようとするとstrace
(見逃した fcntl / ioctl 呼び出しがあるかどうかを確認するために)、問題が再び発生することです。
つまり、strace を使用せずに最初に stderr に大量の書き込みを行うと、io_watch
機能します。strace でたくさん書くか、まったく書かないとうまくいきio_watch
ません。
「some other init」部分には時間がかかるため、「hooked 2」出力が表示される前にテキストを入力し、「ready」後に「ctrl + c」を押すと、get_message
コールバックが呼び出されますが、読み取り呼び出しは EAGAIN をスローします。バッファが空のようです。
標準入力に関連する Strace ログ:
ここで何が起こっているかについて誰か考えがありますか?
編集:別の手がかり。アプリをリファクタリングして、別のスレッドで読み取りを行い、パイプ経由で戻そうとしました。それは「一種の」作品です:
同じテキストを新しいパイプに入れるだけで、すべてが機能し始めるのは驚くべきことです。問題はそれです:
- 最初の行はまったく「認識」されていません-2行目以降の行のみが表示されます
- それは醜いです
多分それはなぜそれが起こっているのかについて他の誰かの手がかりを与えるでしょうか?
glib - Gobjectで、親クラスのメソッドをオーバーライドする方法は、インターフェイスに属していますか?
GObjectクラスAはインターフェイスIAを実装し、BはAの派生クラスです。BはインターフェイスIAの一部であるAのメソッドをどのようにオーバーライドできますか?
または、これはGObjectで可能ですか?
親クラスのメソッドをオーバーライドする方法は知っていますが、継承がインターフェイスと出会うと、事態はより複雑になるようです。
どうもありがとう!
python - PyGObjectの代わりに?
PyGObjectを使用する代わりの方法はありますか?Mac OS Xではまったく動作しないようです。パピオンを使おうとしていますが、GObjectがないと驚くほどうまく失敗します。
c - 私が今まで見た中で最も奇妙なエラー、別名)*
私はこの素晴らしいアプリケーションを書いていますが、少なくとも私はそれが素晴らしいと思います。CでGObjectの素晴らしいブレンドを使用し、しばらくすると、この非常に奇妙なエラーが発生し始めます。また、いつも出てこないことに気づいたと思います。ただし、これはIDEの障害である可能性があります。とにかく...
GCCは、明らかに、次のように文句を言います。 「*」トークンの前に「)」が必要です。これはヘッダーファイルで発生します。
これはまったく同じヘッダーファイルです。
私が見る限り、これはCharcoalApp *app
その関数のパラメーターから来ています。
このエラーが発生している理由がよくわからないため、CharcoalApp.h
ファイルを含めます。global.h
は、主にGLib、GObject、GThread、GTK +、WebKitなどの主な依存関係を保持する非常に単純なヘッダーファイルです。
CharcoalApp.h
ご協力ありがとうございました!
ruby - GtkTreeView のカスタム CellRenderer のための Ruby での GObject サブクラス化
Ruby/GTK でカスタマイズされた CellRenderer を実装しようとしていますが、既に次の提案を見つけました。
ただし、次のことを試すと:
これらのシグナルは決して呼び出されません。これは、Ruby が GObject API にどのように接続されているかに関係していると思いますが、正直なところ、これがどのように機能するのかわかりません。
私がやりたいのは、CellRendererText をサブクラス化し、メソッドを上書きすることです。この例では、TreeView によって呼び出される get_size です。ただ、CellRendererTextはRubyクラスではなくCモジュールなので、実際にシステムに認識させないとメソッドを上書きできないと思います。
また、CellRenderers を TreeViewColumn に割り当てる必要があります。これにより、get_size およびその他のメソッドが呼び出されます。
私の知る限り、同様の問題が PyGtk に存在し、GenericCellRenderer
クラスを追加することで何らかの形で回避されました。
python - GObject.add_emission_hook の使い方
SOに関する最近の質問に続いて、GObjectの「add_emission_hook」を使用するように親切に指示され ましたが、使用例が見つからないようです。
誰か共有してください。
python - gobject の pydev の問題
Python 2.6 を使用する Eclipse (3.5.1) 上の Pydev (1.5.4) は、パッケージを正しく相互参照できないようgobject
です。import gobject
putは問題なく動作しますが、それ以上の場合 (たとえば、 Pydevclass X(gobject.GObject)
が「未解決の参照」エラーを報告する原因となります。
何が問題なのですか?
私が使用する他のすべてのパッケージは、このエラーをトリガーしないことに注意してください。
signals - g_signal_connect_swapped()は何をしますか?
GObjectリファレンスによると
g_signal_connect_swapped(instance、detailed_signal、c_handler、data); GCallback関数を特定のオブジェクトのシグナルに接続します。ハンドラーを呼び出すときに、シグナルが発行され、データが交換されるインスタンス。
これが何を意味するのかよくわかりません。data
これは、が指しているオブジェクトを指し、が指しているオブジェクトを指すことをinstance
意味instance
しますか、data
それとも私はここで間違いを犯していますか?
前者の場合、この背後にある論理は何ですか?