2019/11/10(日) [n年前の日記]
#2 [pygtk] PyGTKの動作確認中
Windows10 x64 1903 + Python 2.7.17 + PyGTK 2.24.0 で、謎の警告メッセージが表示される件について動作を確認中。
gtk.Entry、あるいは gtk.SpinButton を表示するだけのスクリプトを書いて試してみたけど、やはり警告メッセージが表示される。
こんな短いスクリプトですら、例のメッセージが表示されてしまう。
gtk.Entry、あるいは gtk.SpinButton を表示するだけのスクリプトを書いて試してみたけど、やはり警告メッセージが表示される。
import pygtk import gtk # import cairo pygtk.require("2.0") class MyApp(gtk.Window): def __init__(self): super(MyApp, self).__init__() self.connect("delete-event", self.on_delete_event) self.et = gtk.Entry() self.et.set_text("Entry Widget") self.add(self.et) self.show_all() def on_delete_event(self, window, event, data=None): gtk.main_quit() return False if __name__ == '__main__': MyApp() gtk.main()
import pygtk import gtk # import cairo pygtk.require("2.0") class MyApp(gtk.Window): def __init__(self): super(MyApp, self).__init__() self.connect("delete-event", self.on_delete_event) self.sb = gtk.SpinButton() self.sb.set_value(256) self.add(self.sb) self.show_all() def on_delete_event(self, window, event, data=None): gtk.main_quit() return False if __name__ == '__main__': MyApp() gtk.main()
> python entry_test1.py entry_test1.py:36: GtkWarning: gdkdrawable-win32.c:2013 drawable is not a pixmap or window gtk.main()
こんな短いスクリプトですら、例のメッセージが表示されてしまう。
◎ GTK+はダメだな。 :
ダメだな、PyGTK。というより GTK+ がダメ。入力欄なんて、GUIライブラリでは必須の機能だろうに、こんな状態ではダメダメ。
考えてみたら、GTK+ を使って作られている、GIMP、Inkscape、Geany も、特定バージョンでは入力欄絡みで不具合を発生させていたし。しかも、64bit版 GTK+ では不具合が無いけど、32bit版 GTK+ では不具合が発生、とかやってたし。
GTK+ って、基本的にはダメダメなライブラリなのではあるまいか。
もっとも、来年、2020年1月にはサポートが切れる Python 2.7 に加えて、開発終了した PyGTK を使って実験してる状況自体がちょっとアレなわけで。いやまあ、Python-Fu (GIMP-Python) 用のスクリプトを書きたくて、気軽に実験できる環境が欲しいから、あえてこのバージョンを触り始めているのだけれど…。
一般的には、開発が止まっていない Python 3.x + PyGObject で動作確認して、使えるか使えないかを判断すべきだろうな…。もっとも、Windows環境で Python 3.x + PyGObject をインストールするのも、HDD容量の面で大変という問題が…。
考えてみたら、GTK+ を使って作られている、GIMP、Inkscape、Geany も、特定バージョンでは入力欄絡みで不具合を発生させていたし。しかも、64bit版 GTK+ では不具合が無いけど、32bit版 GTK+ では不具合が発生、とかやってたし。
GTK+ って、基本的にはダメダメなライブラリなのではあるまいか。
もっとも、来年、2020年1月にはサポートが切れる Python 2.7 に加えて、開発終了した PyGTK を使って実験してる状況自体がちょっとアレなわけで。いやまあ、Python-Fu (GIMP-Python) 用のスクリプトを書きたくて、気軽に実験できる環境が欲しいから、あえてこのバージョンを触り始めているのだけれど…。
一般的には、開発が止まっていない Python 3.x + PyGObject で動作確認して、使えるか使えないかを判断すべきだろうな…。もっとも、Windows環境で Python 3.x + PyGObject をインストールするのも、HDD容量の面で大変という問題が…。
[ ツッコむ ]
以上です。