Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/07/2009, 09:21
elgame
 
Fecha de Ingreso: enero-2008
Mensajes: 40
Antigüedad: 16 años, 3 meses
Puntos: 0
Ayuda con php-gtk2 y Glade

Hola gente un saludo, tengo un problema al utilizar estas dos aplicaciones.
Tengo instalado el php-gtk2, lo instale con Gnope-1.5.1, el php-gtk2 funciona perfectamente debido a que ya realice algunas aplicaciones de practica.

Tambien tengo el Glade3-3.6.1 instalado.

Lo que e echo es crear una GUI en Glade, guardo el archivo *.glade (hasta aqui todo bien), el problema surge cuando intento utilizar la clase GladeXML
Código PHP:
$glade = new GladeXML(dirname__FILE__)."/hellowg.glade"); 
Y me marca los siguientes errores:
Código:
(apli2_glade.php:2472): libglade-WARNING **: Expected <glade-interface>. Got <GTK-Interface>.

(apli2_glade.php:2472): libglade-WARNING **: did not finish in PARSER_FINISH state 
PHP Fatal error: Encaught exception 'PhpGtkConstructException' whith message 'could not construct GladeXML object' in c:\php-gtk2\test\apli2_glade.php:14
Stack trace:
#0 c:\php-gtk2\test\apli2_glade.php(14): GladeXML->_construct('c:\php-gtk2\tes...')
#1 {main}
thrown in c:\php-gtk2\test\apli2_glade.php on line 14
Yo creo que el XML que esta generando el Glade no es compatible con la clase GladeXML, ya que buscando me encontré un XML de un archivo Glade y con ese si se crea la ventana y un boton, que es lo que trae el XML. La estructura de ambos archivos son diferentes.

XML encontrado en Internet
Código:
<?xml version="1.0" standalone="no"?><!--*- mode: xml -*-->
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
<glade-interface>
    <requires lib="gnome"/>
    <widget class="GtkWindow" id="main">
        <property name="visible">True</property>
        <property name="title" translatable="yes">Hello</property>
        <property name="type">GTK_WINDOW_TOPLEVEL</property>
        <property name="window_position">GTK_WIN_POS_CENTER</property>
        <property name="modal">False</property>
        <property name="resizable">False</property>
        <property name="destroy_with_parent">False</property>
        <child>
            <widget class="GtkVBox" id="vbox1">
                <property name="border_width">15</property>
                <property name="visible">True</property>
                <property name="homogeneous">True</property>
                <property name="spacing">0</property>
                <child>
                    <widget class="GtkLabel" id="label1">
                        <property name="visible">True</property>
                        <property name="label" translatable="yes">Hello libGlade!</property>
                        <property name="use_underline">False</property>
                        <property name="use_markup">False</property>
                        <property name="justify">GTK_JUSTIFY_LEFT</property>
                        <property name="wrap">False</property>
                        <property name="selectable">False</property>
                        <property name="xalign">0.5</property>
                        <property name="yalign">0.5</property>
                        <property name="xpad">0</property>
                        <property name="ypad">0</property>
                    </widget>
                    <packing>
                        <property name="padding">0</property>
                        <property name="expand">False</property>
                        <property name="fill">False</property>
                    </packing>
                </child>
                <child>
                    <widget class="GtkButton" id="button_close">
                        <property name="visible">True</property>
                        <property name="can_default">True</property>
                        <property name="has_default">True</property>
                        <property name="can_focus">True</property>
                        <property name="label">gtk-close</property>
                        <property name="use_stock">True</property>
                        <property name="relief">GTK_RELIEF_NORMAL</property>
                    </widget>
                    <packing>
                        <property name="padding">0</property>
                        <property name="expand">False</property>
                        <property name="fill">False</property>
                    </packing>
                </child>
            </widget>
        </child>
    </widget>
</glade-interface>
XML generado con el Glade
Código:
<?xml version="1.0"?>           
<GTK-Interface>

<project>
  <name>example-gladexml.constructor</name>
  <program_name>example-gladexml.constructor</program_name>
  <directory></directory>
  <source_directory>src</source_directory>
  <pixmaps_directory>pixmaps</pixmaps_directory>
  <language>C</language>
  <gnome_support>False</gnome_support>
  <gettext_support>False</gettext_support>
</project>

<widget>
  <class>GtkWindow</class>
  <name>dlgHellow</name>
  <title>Hello World!</title>
  <type>GTK_WINDOW_TOPLEVEL</type>
  <position>GTK_WIN_POS_NONE</position>
  <modal>False</modal>
  <allow_shrink>False</allow_shrink>
  <allow_grow>True</allow_grow>
  <auto_shrink>False</auto_shrink>

  <widget>
    <class>GtkVBox</class>
    <name>vbox1</name>
    <homogeneous>False</homogeneous>
    <spacing>0</spacing>

    <widget>
      <class>GtkLabel</class>
      <name>lblHello</name>
      <label>Hello world!
This is the example program
for the GladeXML class</label>
      <justify>GTK_JUSTIFY_CENTER</justify>
      <wrap>False</wrap>
      <xalign>0.5</xalign>
      <yalign>0.5</yalign>
      <xpad>0</xpad>
      <ypad>0</ypad>
      <child>
	<padding>0</padding>
	<expand>True</expand>
	<fill>True</fill>
      </child>
    </widget>

    <widget>
      <class>GtkButton</class>
      <name>btnClose</name>
      <can_focus>True</can_focus>
      <signal>
	<name>clicked</name>
	<handler>test</handler>
	<last_modification_time>Sun, 29 Aug 2004 10:33:10 GMT</last_modification_time>
      </signal>
      <label>Close this window</label>
      <relief>GTK_RELIEF_NORMAL</relief>
      <child>
	<padding>0</padding>
	<expand>False</expand>
	<fill>False</fill>
      </child>
    </widget>
  </widget>
</widget>

</GTK-Interface>
No se como hacerlos compatibles o alomejor es otro el problema, Ojala me puedan ayudar.

un saludo.