問題タブ [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。GtkGUIを使用してバックグラウンドでいくつかの作業を行う
- Python 3.2.2
- gtk3 3.2.2
- python-gobject 3.0.2
GUIを表示して、バックグラウンドでいくつかの作業を行おうとしています。私が理解しているように、それは次のように見えるはずです:
しかし、それは機能しません。ボタンを押すと、いくつかのサイクルが発生します。そして、ウィンドウが閉じられた後、サイクルが実行されます。しかし、一緒ではありません。
私は何を間違えますか?
path - root 権限なしで pygobject をインストールする
root 権限なしで pygobject-2.11.3 をインストールしようとしています。ソースをダウンロードし、./configure --prefix=/home/my_username/local を実行すると、次のようになります。
GLIB をチェックしています - バージョン >= 2.8.0... いいえ * GLIB テスト プログラムを実行できませんでした。原因をチェックしています... テスト プログラムのコンパイルまたはリンクに失敗しました。* * 発生した正確なエラーについては、ファイル config.log を参照してください。これは通常、GLIB が正しくインストールされていないことを意味します。構成: エラー: pygobject-2-4 ブランチが必要ですか?
だから私は同じ方法でglib-2.8.6をインストールしました(./configure --prefix=/home/my_username/local && make && make install)glibのエラーメッセージはありません。
pyobject を再インストールしようとした後、同じエラーが発生します。
ログを見ると、次のように表示されます: glib.h : no such file or directory
したがって、pyobject の ./configure スクリプトは /home/my_username/local/include にある glib.h を見つけられないようです
/home/my_username/local は $PATH の最初の要素です
uname -a : Linux u205 2.6.9-42.ELsmp #1 SMP Wed Jul 12 23:32:02 EDT 2006 x86_64 x86_64 x86_64 GNU/Linux
助けてくれてありがとう
python - 互換性のあるGTK2とGTK3の両方のPythonGUI
GTK+を使用してpython2でグラフィカルインターフェイスを作成したいと思います。
今のところ、GTK3を使用するためにgobject-introspectionを使用していますが、可能であれば、GTK2とも互換性があるようにしたいと思います。
ウィンドウにグリッドを使用してGtk.Grid
いましたが、GTK2には存在しないようです。一方Gtk.Table
、両方のバージョンに存在します。
アプリをGTKの両方のバージョンと互換性を持たせることは価値がありますか(そしてどのように?)、それともほぼ2倍のコードを書く必要がありますか?
ありがとう
python - Python GTK+ キャンバス
私は現在、PyGobject を介して GTK+ を学習しており、キャンバスのようなものが必要です。私はすでにドキュメントを検索し、GtkDrawingArea と GtkLayout という仕事をする可能性が高いと思われる 2 つのウィジェットを見つけました。fillrect や drawline などのいくつかの基本的な関数が必要です...実際、これらの関数は c から利用できますが、python からそれらを使用する方法を見つけることができませんでした。同等の Python を扱うチュートリアルまたはマンページをお勧めできますか?
キャンバスに似たものを取得する方法についてより良いアイデアがあれば、すべてのヒントをいただければ幸いです。私はまだ学んでおり、Gtk アプリケーションに組み込むことができる限り、どのようなソリューションにも満足しています。
python - メモリ アドレスから Python オブジェクトを作成する (gi.repository を使用)
時々、C だけに存在する gtk/gobject 関数を呼び出す必要がありますが、Python ラッパーを持つオブジェクトを返します。以前は、うまく機能する ctypes に基づくソリューションを使用していました。
http://faq.pygtk.org/index.py?req=show&file=faq23.041.htp
PyGtk ("import gtk") から GObject-introspection ("from gi.repository import Gtk") に切り替えたので、代わりに何を使用できますか?
python - pygobject を使用した pango 属性
pygtk を使用する次のコードがあります。
私はそれをpygobjectに移植しようとしていますが、クラスPango.AttrFamilyもPango.AttrWeightもPango.AttrForegroundもありません(そして、Pango.AttrSizeをインスタンス化できません)。
問題は、 、 、および をインストロスペクションでどのように使用pango_attr_size_new
するpango_attr_weight_new
かpango_attr_family_new
ですpango_attr_foreground_new
。
マークアップを使用してこれを行うことができることはわかっていますが、1. 属性を使用すると物事が単純になり、2. ここで何が起こっているのか知りたいです! 私はすでにそれを解決するために多くの時間を費やしてきました。
python - Gtk+ 3 - TextView での書き込みと自動スクロールの問題
私は , のGtk.ScrolledWindow()
中に withを持っていますGtk.TextView()
(私は PyGObject イントロスペクションを使用しています)。
テキストを挿入して別のスレッドから自動スクロールし、メソッドappend_text
を続けて数回呼び出すと、いくつかの警告が表示され、GUI がクラッシュします。
これは私のコードの厄介な部分です:
私が間違っていることを誰かが知っていますか?
--
ここに私が得たエラーのいくつかがあります:
Gtk-WARNING **: 無効なテキスト バッファ反復子: 反復子が初期化されていないか、反復子が作成されてからバッファ内の文字/pixbufs/ウィジェットが変更されています。バッファーを変更しても位置を保持するには、マーク、文字番号、または行番号を使用する必要があります。イテレータを無効にすることなく、タグを適用してマークを挿入できますが、「インデックス可能な」バッファ コンテンツ (文字オフセットによって参照できるコンテンツ) に影響を与えるミューテーションは、すべての未処理のイテレータを無効にします。
Pango-CRITICAL **: pango_layout_index_to_pos: アサーション `layout != NULL' が失敗しました
Gtk-WARNING **: gtktextview.c:4813: 何らかのテキスト行が変更されたか、画面上の行の最後の検証以降にスクロールが発生しました - テキスト ウィジェットのバグである可能性があります。
Gtk:ERROR:gtktextview.c:4814:gtk_text_view_paint: コードに到達しないでください
python - Gtk.DrawingAreaまたはCairoパターンの内容をディスク上の画像に保存します
Cairoイメージサーフェスを使用する小さなPyGIプロジェクトがあります。これをサーフェスパターンでスケーリングし、Gtk.DrawingAreaでレンダリングします。
拡大縮小したバージョンをPNGファイルに書き込みたいのですが。Surface.write_to_png()を使用して元のサーフェスから書き込もうとしましたが、元の(つまり、スケーリングされていない)サイズでしか書き込めないため、そこでスタックします。
次に、レンダリングされた画像をGtk.DrawingAreaからフェッチしてディスクに書き込むことができると思いましたが、PyGIでそれを行う方法がわかりません(これはGTK+2でのみ可能であるようです-gtk.DrawingAreaを保存してくださいファイル)。だから私は自分のスケーリングされた画像をディスクに書き込む方法を見つけようとしています。
サーフェスを作成し、スケールアップしてレンダリングするコードは次のとおりです。
そして、これがPNGファイルに表面を書き込むためのコードです:
したがって、サーフェスを書き込むと、スケーリングされていない画像が作成され、cairo.SurfacePatternにも書き込みメソッドはありません。
私の最後の手段は、gtk.DrawingAreaでレンダリングされたスケーリングされた画像をフェッチし、それをGtkPixbuf.Pixbufまたは新しいサーフェスに配置して、それをディスクに書き込むことです。pixbufアプローチはGTK+2で機能するように見えましたが、GTK+3では機能しませんでした。
では、スケーリングされた画像をディスクに書き込む方法を知っている人はいますか?
python - PyGObject/GTK+3 でスピンボタンの表示をフォーマットする
私は、アプリケーションを PyGTK から PyGObject に移植中です。ほとんどはPyGTKで従来のことをやったので、ほとんどうまくいっています。しかし、SpinButton の値を通貨 (前に $ を付けて) として表示するために使用していた、やや醜いハックが 1 つあります。
このソリューションは、スタック オーバーフローの数日前にPyGTK メーリング リストから入手したものです。ご覧のとおり、マジックは入力信号と出力信号で発生します。
それを PyGObject に翻訳するために最善を尽くした結果、次のようになりました。
残念ながら、これは機能しません。最初は問題なく表示されますが、上または下のエラーをクリックするとクラッシュし、次のように表示されます。
このエラーメッセージが何を意味するか分かりますか?
または、コードのどの部分が PyGObject で動作しない可能性がありますか?
または、さらに良いことに、このエラーを修正する方法は?
または、さらに良いことに、元の問題 (SpinButton コンテンツの前に $ を表示する) に対するより簡単な解決策はありますか?
python - PyGObject で最小化またはカバーされているウィンドウを表示するにはどうすればよいですか?
PyGTK FAQで提供されている回答を使用していましたが、PyGObject では機能しないようです。参考までに、PyGTK で動作するテスト ケースと、PyGObject で動作しない翻訳版を次に示します。
PyGTK バージョン:
PyGObject バージョン:
PyGObject バージョンでボタンをクリックすると、他のウィンドウが表示されず、次のエラーが発生します。
だから、PyGObject で Gdk.window を取得する他の方法があるに違いないと思いますか?
または、同じ目標を達成するための別の/より良い方法はありますか?
何か案は?