問題タブ [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 - GTK GUI で通信するための gobject と subprocess.Popen
Popen プロセスと GTK GUI 間の通信を可能にするために gobject を使用しようとしています。
これに触発されました: https://pygabriel.wordpress.com/2009/07/27/redirecting-the-stdout-on-a-gtk-textview/#comment-156
私はこれに似たものを実装しました:
http://hartree.altervista.org/files/command-textview.py
しかし、Popen プロセスが終了しても、gobject が多くの CPU サイクルを使用していることに気付きました。上記のスクリプトを実行して、Ubuntu システム モニターを監視するだけです。
「pty」でいくつかの作業を行った後、私はこれを思いつきました:
私が持っている質問は次のとおりです。
ptyは良い考えですか?Windowsでも使えますか?
pty の使用を避けて標準出力のみを使用し、CPU 使用率が高くなる問題を回避することは可能ですか?
このスクリプトを初めて実行すると、txt 出力がバッファリングされ、不完全な出力が得られるようです。
お手伝いありがとう
c - 構造体内の構造体をGSourceFuncに渡す最良の方法
SをGSourceFuncに到達させるのに最適な方法はどれですか?またはどちらでもない?
またはこのように、
私は他の方法を試しましたが、それらを機能させることができませんでした。clutter_add_timeoutは、引数としてポインターを取る必要があります。
gtk - そのような小道具があるのに、vala が欠落しているプロパティについて不平を言うのはなぜですか
gtk 3 と vala を使用して GUI アプリを開発しています。これは MainWindow::MainWindow() からの私のソース コードです。
valac はこのエラーを出します:
これを見て、そうではないと言います。私も試しました
これにより、次の出力が得られます。
私が正しく理解できれば、Gtk.Application にはすべてのプロパティがあるのに、なぜ valac でこのエラーが発生するのでしょうか?
valac 0.14.2.Ubuntu 12.04 を使用しています。
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 用です。非推奨。
introspection - Vala VAPI と GObject イントロスペクションの関係は?
まず、いくつかのコンテキスト: 私は PyGObject を使用して中規模のアプリケーションを作成した Python 開発者であり、GObject Introspection を利用して GSettings などにアクセスしています。私の Python オブジェクトの一部は、実際には GObject.GObject をサブクラス化しています。 GObject をかなり広範囲に使用します。
最近、C ライブラリを GObject (Shotwell/Vala で使用される gexiv2) でラップする特定のライブラリに注目しましたが、現在はイントロスペクションをサポートしていません。Python からアクセスできるように gexiv2 にイントロスペクション サポートを追加することに興味がありますが、このトピックをどこから始めればよいかさえわかりません。
イントロスペクションと VAPI について調べていると、イントロスペクション アノテーションから VAPI を自動的に生成できるという事実に言及しているドキュメントがたくさんあります。VAPI を指定してイントロスペクション アノテーションを自動的に生成することは可能ですか?
ありがとう。
glib - GLibとGObjectとは正確には何ですか?
私はpython-mpdorのソースコードを調べていましたが、それは
gobjectベース、イベント処理を容易にします(高レベルのクライアントクラスで)。
誰かが私に簡単な言葉で、正確には何でGlib
ありGObject
、どのように相互作用し、イベント処理でどのような役割を果たしているのかを説明できますか?
検索してGlib
みGObject
ましたが、基本的な説明が見つかりませんでした。私が見つけたすべての説明は非常に技術的であり、技術的には初心者には適していないことを意味します。
また、誰かがとに関するいくつかの初心者向けチュートリアル/記事を指摘できますか?Glib
GObject
gtk - ツールアイテムのプロキシメニューアイテムが使用されないのはなぜですか?
ToolItem
ツールバーのオーバーフローメニューにあるときに、のカスタムメニュー項目を表示したいと思います。これがメソッドの目的のようset_proxy_menu_item
です。ただし、この方法でプロキシメニュー項目を設定した場合、オーバーフローメニューには影響しません。引き続きデフォルトのメニュー項目を使用します(ラベルとしてToolItemの名前を使用)。
これは、問題を再現する(Valaの)単純なプロジェクトです。3つのボタンを備えたツールバーを含む小さなウィンドウを作成します。ウィンドウは、これらのボタンの1つを除くすべてがオーバーフローメニューに表示されるように十分に小さくする必要があります。
オーバーフローメニューを表示すると、のメニュー項目として「プロキシ」が表示されますedit_button
。代わりに、「編集」が表示されます。
私は何が間違っているのですか?
python - GObject.add_emission_hookは1回だけ機能します
GObject.add_emission_hookを使用して接続し、クラスのすべてのインスタンスのシグナルをキャッチしたいと思います。うまくいくようですが、一度だけです。以下の最小限の例では、ボタンの1つが何度クリックされても、「受信信号」は1回だけ印刷されます。それはなぜですか、クリックするたびに信号を受信するにはどうすればよいですか?
もちろん、私のアプリケーションでは物事はもっと複雑で、受信機(ここではクラスFoo)は信号を発しているオブジェクトを知りません。したがって、オブジェクト自体の信号に接続することはできません。
python - PyGObject GTK + 3-ドキュメント?
PyGObjectには実際のドキュメントがないようです。このチュートリアルは、可能な限り近いものです。Gtk.Window
私は午前中ずっと、コンストラクターによって受け入れられた引数の説明を見つけようとして苦労してきました。PyGObjectのすべてが動的に生成されるため、Pythonではあまり反映できないようです。
私が欲しいのは、このコンストラクターに渡すことができる引数を知ることだけです!GTK + 3のドキュメントには、このオブジェクトに相当するものはないようです。ソースコードを読んでバインディングを理解することは、非常に困難な作業であることが証明されています。何か案は??
python - GtkSourceView Scroll to Line with Gobject Introspection [python]
GobjectIntrospectionを使用してPythonGTKアプリケーションを正常に作成し、GTKSourceViewウィジェットでソースファイルを開きました。
ユーザーがボタンをクリックしたときに、スクロールして特定の行(行150)を画面の中央に配置しようとしています。
gtktextview / gtksourceviewの特定の行に(プログラムで)スクロールする方法を読みました
また、GtkSourceViews、GTKTextView、およびこれら両方のバッファオブジェクトを取り巻くドキュメント(ソースビューがテキストビューから継承することは私の理解です)
私は次の方法を使おうとしました:
-150行目でイテレータを取得してからscroll_to_iter()メソッドを使用します-150行目でイテレータを取得し、イテレータでマークを付けてから、scroll_to_mark()メソッドを使用します
place_cursor(iter)メソッドを正常に使用でき、150行目の終わりにマーカーを正常に配置できるため、イテレーターとマークが正しいことはわかっていますが、マークまでスクロールするか、指定されたメソッドを使用するイテレーターは何もしません。
マークへのスクロールメソッドは値を返しませんが、イテレータメソッドはfalseを返します。
誰かがこれを達成する方法を提案できますか?
私のテストコードは次のとおりです。