3

一般的に、Windows、ボックス、グリッド、シグナル ハンドラーなどの Gtk3 システムの使用に成功しています。しかし、何を試しても DrawingArea ウィジェットを動作させることができません。セットアップに問題があると思われますが、確認方法がわかりません。これは、実際に機能する必要最小限の例です。

#!/usr/bin/env python3 

from gi.repository import Gtk, Gdk
class MyExample(object): 
  def __init__(self, user_data=None): 
    window = Gtk.Window() 
    window.connect("destroy", Gtk.main_quit) 
    drawing_area = Gtk.DrawingArea() 
    drawing_area.set_size_request(300,300) 
    drawing_area.connect('draw',self.expose) 
    window.add(drawing_area) 
    window.show_all()  
  def expose(self,widget,cr,data): 
    print ("self_exposed") 
# === 
if __name__ == "__main__": 
    app = MyExample() 
    Gtk.main() 

実行すると、次のエラーが表示されます。

Exception TypeError: TypeError("Couldn't find conversion for foreign struct
'cairo.Context'",) in <module 'threading' from '/usr/lib/python3.2/threading.py'>
ignored

Ubuntu 12.04 と Python 3.2 を使用しています。インストールに何か問題があると思われますが、何ですか? python-gi-cairo を再インストールしてみました。

アイデアをありがとう、

マイク

4

3 に答える 3

3

ここで私の答えを確認してください:

PyGobject での描画 (python3)

python3-gi-cairoパッケージをインストールする必要があります。

于 2012-07-02T20:19:57.093 に答える
1

python3-cairo パッケージを試しても良い結果が得られなかったので、同様の問題が発生していました。

ただし、python3-gi-cairoパッケージをインストールすると解決しました。

私の場合、Ubuntu 12.04 では、ターミナルで$ sudo apt-get install python3-gi-cairo を実行するとうまくいき、迷惑な「外部構造体 'cairo.Context' の変換が見つかりませんでした」というメッセージが表示されなくなりました。

おそらく、他のUbuntuバージョン、おそらくDebianでも動作するでしょう...

他のディストリビューションにも同様のパッケージがあるかもしれませんが、これについてはあまり役に立ちません。

お役に立てば幸いです。

于 2013-06-03T03:49:33.450 に答える
1

Gtk+ 3 と Python 3 を使用している場合、「draw」シグナルが送信されないようです。私には理解できませんが、実際には私のプロジェクトにダンパーが置かれ、非常にイライラします。

于 2013-02-14T15:44:33.933 に答える