Retroceder   Foros del Web > Programación para sitios web > PHP > PHP-GTK

Respuesta
 
Herramientas Desplegado
Antiguo 29-sep-2005, 23:13   #1 (permalink)
jc_moty ha deshabilitado el karma
 
Avatar de jc_moty
 
Fecha de Ingreso: septiembre-2005
Ubicación: Usulután, El Salvador
Mensajes: 463
Enviar un mensaje por MSN a jc_moty Enviar un mensaje por Yahoo  a jc_moty
Pregunta Problema con Entry::set_text

Hola a todos.
Realmente solo tengo como 5 dias programando con PHP-GTK, y tengo un problemita con el metodo set_text del widget Entry.
El problema es que desde un Button, quiero cambiar el texto de el Entry; pero resulta que cuando le doy click al boton; me cierra la ventana.
El codigo es el siguiente:
Código PHP:
<?php
    dl
('php_gtk.dll');
    
$app=&new GladeXML("GUI.glade");
    
$entry1=$app->get_widget("entry1");
    function 
button1_click()
    {
        
$entry1->set_text('Hola Mundo PHP-GTK');
    }
    
$app->signal_autoconnect();
    
Gtk::main();
?>
Como podran ver uso Glade para generar la interfaz; y en Glade especifico que la signal del objeto Button1 va a ser manejada por la funcion button1_click(); y por esta razon es que uso el metodo signal_autoconnect().
¿Que falta?, ¿De que me estoy perdiendo?, ¿Porque cierra la ventana al hacer clic en el boton?; aparentemente es un codigo simple, pero no se que pasa!
De antemano Gracias.
Saludos!.

Aqui dejo el GUI.glade:
Código:
<?xml version="1.0"?>
<GTK-Interface>
<project>
  <name>HolaPHPGTK</name>
  <program_name>holaphpgtk</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>window1</name>
  <title>Hola PHP-GTK</title>
  <type>GTK_WINDOW_TOPLEVEL</type>
  <position>GTK_WIN_POS_CENTER</position>
  <modal>False</modal>
  <allow_shrink>False</allow_shrink>
  <allow_grow>True</allow_grow>
  <auto_shrink>False</auto_shrink>
  <widget>
    <class>GtkFixed</class>
    <name>fixed1</name>
    <widget>
      <class>GtkEntry</class>
      <name>entry1</name>
      <x>88</x>
      <y>16</y>
      <width>158</width>
      <height>18</height>
      <can_focus>True</can_focus>
      <editable>True</editable>
      <text_visible>True</text_visible>
      <text_max_length>0</text_max_length>
      <text></text>
    </widget>
    <widget>
      <class>GtkLabel</class>
      <name>label1</name>
      <x>16</x>
      <y>16</y>
      <width>74</width>
      <height>18</height>
      <label>Su Nombre</label>
      <justify>GTK_JUSTIFY_CENTER</justify>
      <wrap>False</wrap>
      <xalign>0.5</xalign>
      <yalign>0.5</yalign>
      <xpad>0</xpad>
      <ypad>0</ypad>
    </widget>
    <widget>
      <class>GtkButton</class>
      <name>button1</name>
      <x>88</x>
      <y>40</y>
      <width>85</width>
      <height>24</height>
      <can_focus>True</can_focus>
      <signal>
	<name>clicked</name>
	<handler>button1_click</handler>
	<last_modification_time>Thu, 29 Sep 2005 17:34:02 GMT</last_modification_time>
      </signal>
      <label>Click Aqui</label>
      <relief>GTK_RELIEF_NORMAL</relief>
    </widget>
  </widget>
</widget>
</GTK-Interface>

Última edición por jc_moty; 31-oct-2005 a las 20:17.
jc_moty está desconectado   Responder Citando
Antiguo 31-oct-2005, 20:35   #2 (permalink)
jc_moty ha deshabilitado el karma
 
Avatar de jc_moty
 
Fecha de Ingreso: septiembre-2005
Ubicación: Usulután, El Salvador
Mensajes: 463
Enviar un mensaje por MSN a jc_moty Enviar un mensaje por Yahoo  a jc_moty
Idea La respuesta mas simple suele ser la correcta.

Al fin encontre la solucion (un mes despues); la realidad es que ya me habia dado por vencido con este codigo; porque buscaba y buscaba y no hallaba nada...hasta hoy que en un foro en ingles me tope con algo que no habia hecho...y la solucion era tan simple, en fin el codigo queda asi:
Código PHP:
<?php
    dl
('php_gtk.dll');
    
$app=&new GladeXML("GUI.glade");
    
$entry1=$app->get_widget("entry1");
    
$app->signal_autoconnect();
    function 
button1_click()
    {
        global 
$entry1// esta era la linea que faltaba
        
$entry1->set_text("Hola, Bienvenido a PHP-GTK");
    }
    
Gtk::main();
?>
El problema era que dentro de una funcion yo queria hacer referencia a una variable que no estaba inicializada dentro de ella, sino que es una variable global; y evidentemente tengo que hacer la referencia a esta variable dentro de la funcion, y esto se logra con global.
Que Loser soy.

Última edición por jc_moty; 31-oct-2005 a las 20:44.
jc_moty está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Desactivado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 21:48.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93