web-dev-qa-db-ja.com

Gladeに「About」ウィンドウを作成する

Ubuntu 14.04のMate DEでAbout MATEのようなaboutウィンドウを作成しようとしましたが、これは私が作成した.pyファイルです。

 #!/usr/bin/env python

 import sys
 try:
     import pygtk
     pygtk.require("2.0")
 except:
     pass
 try:
     import gtk
     import gtk.glade
 except:
      sys.exit(1)

 class aboutGTK:
          """About"""

          def __init__(self):

               #Set the Glade file
               self.gladefile = "about.glade"  
                     self.wTree = gtk.glade.XML(self.gladefile) 

               #Create our dictionay and connect it
               dic = { "on_btnabout_clicked" : self.btnabout_clicked,
                   "on_MainWindow_destroy" : gtk.main_quit }
              self.wTree.signal_autoconnect(dic)

          def btnabout_clicked(self, widget):
              print "About"


 if __name__ == "__main__":
     hwg = aboutGTK()
     gtk.main()

しかし、about.pyを実行すると、次のようになります。

$ python about.py 

(about.py:9950): libglade-WARNING **: Expected <glade-interface>.      Got <interface>.

(about.py:9950): libglade-WARNING **: did not finish in  PARSER_FINISH state
Traceback (most recent call last):
File "about.py", line 34, in <module>
  hwg = aboutGTK()
File "about.py", line 22, in __init__
  self.wTree = gtk.glade.XML(self.gladefile) 
RuntimeError: could not create GladeXML object

何か助けてください?

3
Marko Blanka

Glade 3.xで作成されたファイルをロードするには、GTK3を使用する必要があります。 Glade 2.xはUbuntuで利用できないため、GTK3に切り替えることが最善の選択肢です。

PythonでGTK3を使用するには、PyGTKから PyGObject に切り替える必要があります。 The Python GTK + 3チュートリアル の使い方。

2
Florian Diesch