2013-04-14 3 views
0

gui.glade :안녕하세요, 세계! 파이썬에서 + 레이드 2

<?xml version="1.0" encoding="UTF-8"?> 
<interface> 
    <!-- interface-requires gtk+ 3.0 --> 
    <object class="GtkWindow" id="window"> 
    <property name="can_focus">False</property> 
    <signal name="destroy" handler="on_window_destroy" swapped="no"/> 
    <child> 
     <object class="GtkLabel" id="label"> 
     <property name="width_request">250</property> 
     <property name="height_request">100</property> 
     <property name="visible">True</property> 
     <property name="can_focus">False</property> 
     <property name="label" translatable="yes">Hello, World!</property> 
     </object> 
    </child> 
    </object> 
</interface> 

gui.py : 나는 빈터 파일이 Libglade으로 저장됩니다 확인했다

(gui.py:4504): libglade-WARNING **: Expected <glade-interface>. Got <interface>. 

(gui.py:4504): libglade-WARNING **: did not finish in PARSER_FINISH state 
Traceback (most recent call last): 
    File "gui.py", line 26, in <module> 
    window = GTKWindow() 
    File "gui.py", line 17, in __init__ 
    self.wTree = gtk.glade.XML("gui.glade") 
RuntimeError: could not create GladeXML object 

: 터미널에서

#!/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 GTKWindow: 
    def __init__(self): 
     self.wTree = gtk.glade.XML("gui.glade") 
     self.window = self.wTree.get_widget("window") 

     if (self.window): 
      self.window.connect("on_window_destroy", gtk.main_quit) 

     gtk.main() 

if __name__ == "__main__": 
    window = GTKWindow() 

오류 그러나 프로젝트를 실행할 수 없습니다 (위의 터미널 오류 참조). gtk.Builder를 사용하여 시도했지만 GtkBuilder 파일 아래에 glade 파일을 저장 했는데도 아무 일도 일어나지 않습니다. 어떤 아이디어?

답변

0

코드에 몇 가지 사항을 변경했습니다. 나는 당신을 도울 희망이있다.

gui.glade

<?xml version="1.0" encoding="UTF-8"?> <glade-interface> <!-- 
interface-requires gtk+ 2.24 --> <!-- interface-naming-policy 
project-wide --> <widget class="GtkWindow" id="window"> 
    <property name="visible">True</property> 
    <property name="can_focus">False</property> 
    <signal name="destroy" handler="on_window_destroy" after="yes" swapped="no"/> 
    <child> 
     <widget class="GtkLabel" id="label1"> 
     <property name="visible">True</property> 
     <property name="can_focus">False</property> 
     <property name="label" translatable="yes">Hello, World!</property> 
     </widget> 
    </child> </widget> </glade-interface> 

gui.py

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

class GTKWindow(): 
    def __init__(self): 
     self.wTree = gtk.glade.XML("gui.glade")   
     dict = { 
      "on_window1_destroy": self.destroy,     
      } 
     self.wTree.signal_autoconnect(dict) 
    def destroy(self,*args): 
     gtk.main_quit() 

# def  
if __name__ == "__main__": 
    window = GTKWindow() 
gtk.main()