2019/11/09(土) [n年前の日記]
#2 [pygtk] PyGTKを勉強中
pycairo を使う場合はえてして PyGTK or PyGObject もついてくるわけだし、pycairo の描画結果を PyGTK で表示したほうがいいかなと思い始めて、PyGTK について勉強し始めたところ。
◎ 「drawable is not a pixmap or window」が気になる。 :
色々な Widget を表示して、アプリっぽいレイアウトになるように動作確認をしていたけれど。Pythonスクリプトを終了させるタイミングで、妙な警告メッセージが表示されて困ったり。
環境は、Windows10 x64 1903 + Pythn 2.7.17 32bit + PyGTK 2.24.0。
ググってみたけれど、こうすれば回避できるという事例が見つからず。
gtk.DrawingArea() を使っているのがいかんのかと思ったけれど、今まで写経して動いていたスクリプト内でもガンガン使っているのに、そちらでは件の警告メッセージは出ないわけで。となると、そこではないよな…。
色々な Widget を消したり足したりしてるうちに分かってきた。入力欄が存在する Widget を表示すると、件の警告メッセージが表示される。例えば、gtk.SpinButton() とか、gtk.Entry() とかそのあたり。
入力欄が無いWidget、例えば gtk.Button() や gtk.Label() を代わりに表示すると、例のメッセージは出なくなった。しかし、入力ができないのでは、GUIアプリにならない…。
以下のページで、input method が云々が原因で、と言及されている。もしかするとそれと同じ現象、なのかもしれない。
_ubuntu 11.10 - Gdk-WARNING **: /build/....../gdkdrawable-x11.c:952 drawable is not a pixmap or window - Stack Overflow
> python pygtk_helloworld2.py pygtk_helloworld2.py:120: GtkWarning: gdkdrawable-win32.c:2013 drawable is not a pixmap or window gtk.main()
環境は、Windows10 x64 1903 + Pythn 2.7.17 32bit + PyGTK 2.24.0。
ググってみたけれど、こうすれば回避できるという事例が見つからず。
gtk.DrawingArea() を使っているのがいかんのかと思ったけれど、今まで写経して動いていたスクリプト内でもガンガン使っているのに、そちらでは件の警告メッセージは出ないわけで。となると、そこではないよな…。
色々な Widget を消したり足したりしてるうちに分かってきた。入力欄が存在する Widget を表示すると、件の警告メッセージが表示される。例えば、gtk.SpinButton() とか、gtk.Entry() とかそのあたり。
入力欄が無いWidget、例えば gtk.Button() や gtk.Label() を代わりに表示すると、例のメッセージは出なくなった。しかし、入力ができないのでは、GUIアプリにならない…。
以下のページで、input method が云々が原因で、と言及されている。もしかするとそれと同じ現象、なのかもしれない。
_ubuntu 11.10 - Gdk-WARNING **: /build/....../gdkdrawable-x11.c:952 drawable is not a pixmap or window - Stack Overflow
[ ツッコむ ]
以上です。