• Publicidad

Gtk2 libglade-WARNING

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Gtk2 libglade-WARNING

Notapor ubuntu » 2009-08-19 08:11 @382

Buenas, soy nuevo en el foro. Saludos a todos :) y encantado.

Bueno, intentando aprender a usar Gtk2 , y buscando por Google, encontré unos ejemplos.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl -w
  2.   use strict;
  3.   use Gtk2 -init;
  4.   use Gtk2::GladeXML;
  5.  
  6.   my($programa, $ventana_principal, $etiqueta, $widget_entrada_de_texto);
  7.  
  8.   $programa = Gtk2::GladeXML->new('prueba.glade');
  9.  
  10.   $ventana_principal = $programa->get_widget('ventana_principal');
  11.   $etiqueta = $programa->get_widget('etiqueta');
  12.  
  13.   ### Creo el objeto "$widget_entrada_de_texto" el cual contiene métodos
  14.   ### predefinidos para interactuar con la "entrada de texto" y así
  15.   ### obtener los introducido por el usuario. En parámetro que recibe es
  16.   ### el ID o nombre que especificamos en el Glade. Yo le puse entrada1
  17.  
  18.   $widget_entrada_de_texto = $programa->get_widget('entrada1');
  19.  
  20.   $programa->signal_autoconnect_from_package('main');
  21.  
  22.   $ventana_principal->show_all();
  23.  
  24.   Gtk2->main;
  25.  
  26.   sub on_boton_cerrar_clicked {Gtk2->main_quit;}
  27.  
  28.   ### Esta subrutina es la que se ejecutará cuando el usuario presione el botón
  29.   ### "Recoger Datos"
  30.  
  31.   sub on_boton_recoger_datos_clicked {
  32.          
  33.         ### Declaro una variable interna en subrutina la cual guardará el
  34.         ### texto introducido por el usuario
  35.        
  36.         my($texto_introducido);
  37.        
  38.         ### Uso uno de los métodos predefinidos(``get_text()``) que tiene el
  39.         ### objeto creado anteriormente el cuál me permite obtener lo introducido
  40.         ### por el usuario en la entrada
  41.          
  42.         $texto_introducido = $widget_entrada_de_texto->get_text();
  43.          
  44.         ### Una vez obtenido el valor introducido por el usuario(en este ejemplo
  45.         ### sería el nombre) y está guardado en la variable $texto_introducido
  46.         ### entonces escribo ese valor en la etiqueta vacía al igual que vimos en
  47.         ### capítulo anterior
  48.  
  49.         $etiqueta->set_markup("$texto_introducido");
  50.   }
  51.  
Coloreado en 0.005 segundos, usando GeSHi 1.0.8.4


Y el problema es que al ejecutar me devuelve
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
ubuntu@ubuntu-desktop:~$ perl prueba.pl

(prueba.pl:8613): libglade-WARNING **: could not find glade file 'prueba.glade'
Can't call method "get_widget" on an undefined value at prueba.pl line 10.
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


He buscado por Internet, y vi algunos casos parecidos, pero no encontré solución. Gracias de antemano, Saludos desde Cádiz
Última edición por explorer el 2009-08-19 08:23 @391, editado 1 vez en total
Razón: Ortografía. Es Cádiz, no cadiz.
Avatar de Usuario
ubuntu
Perlero nuevo
Perlero nuevo
 
Mensajes: 18
Registrado: 2009-08-19 07:30 @354

Publicidad

Re: Gtk2 libglade-WARNING

Notapor explorer » 2009-08-19 08:26 @393

Bienvenido a los foros de Perl en Español, ubuntu.

El problema es que el programa hace uso de un fichero de definición en formato GladeXML.

Si quieres correr ese ejemplo, deberás tener el fichero prueba.glade al que hace referencia, al lado del programa.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Gtk2 libglade-WARNING

Notapor ubuntu » 2009-08-19 08:50 @409

Gracias por la bienvenida y por tu rápida respuesta explorer.

¿Me podrías decir de algún lugar, donde encontrar algo mas de información acerca de glade, para saber con qué rellenar el archivo al que me haces referencia?

Espero haberme explicado bien, saludos y perdón por las faltas de ortografía.
Avatar de Usuario
ubuntu
Perlero nuevo
Perlero nuevo
 
Mensajes: 18
Registrado: 2009-08-19 07:30 @354

Re: Gtk2 libglade-WARNING

Notapor explorer » 2009-08-19 09:54 @454

Te he enlazado la página de Wikipedia, y desde ahí te enlaza con la página principal del proyecto, donde veo que hay documentación.

El fichero glade lo genera la aplicación Glade. Es la definición (en XML) del entorno gráfico que usará tu aplicación Perl.

Las faltas de ortografía corregidas no sirven para amonestar al autor, sino para ayudar a Google a indexar estos foros. Aunque, bueno, el autor también puede aprender de ellas (yo también cometo algunas y las indico :) )
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Gtk2 libglade-WARNING

Notapor ubuntu » 2009-08-19 19:24 @850

Gracias de nuevo explorer .

Para verificar que la ayuda de explorer me sirvió de mucho , una captura de la ventana creada :
auto-apagado.png
mi primer programa con ventana
auto-apagado.png (20.44 KiB) Visto 1359 veces


El código del programa :

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.   use strict;
  3.   use Gtk2 -init;
  4.   use Gtk2::GladeXML;
  5.  
  6.   my($programa, $ventana_principal, $etiqueta, $hora, $min, $key);
  7.  
  8.   $programa = Gtk2::GladeXML->new('proyecto4.glade');
  9.  
  10.   $ventana_principal = $programa->get_widget('window1');
  11.   $etiqueta = $programa->get_widget('informa');
  12.  
  13.   #Creo el objeto "$hora" , "$min" y "key" el cual contiene métodos
  14.   #predefinidos para interactuar con la "entrada de texto" y así
  15.   # obtener los introducido por el usuario. En parámetro que recibe es
  16.   # el nombre que especificamos en el Glade. Yo le puse "hora","minutos","pass", asi sé con que trabajo
  17.  
  18.   $hora = $programa->get_widget('hora');
  19.   $min = $programa->get_widget('minutos');
  20.   $key = $programa->get_widget('pass');
  21.  
  22.   $programa->signal_autoconnect_from_package('main');
  23.  
  24.   $ventana_principal->show_all();
  25.  
  26.   Gtk2->main;
  27.  
  28.   sub on_boton_cerrar_clicked {Gtk2->main_quit;}
  29.  
  30.   ### Esta subrutina es la que se ejecutará cuando el usuario presione el botón
  31.   ### "Aplicar"
  32.  
  33.   sub on_boton_recoger_datos_clicked {
  34.          
  35.         ### Declaro una variable interna en subrutina la cual guardará el
  36.         ### texto introducido por el usuario
  37.        
  38.         my($hora_dentro, $min_dentro, $hora_total, $total_tiempo, $min_total, $lapass);
  39.        
  40.         ### Uso uno de los métodos predefinidos(``get_text()``) que tiene el
  41.         ### objeto creado anteriormente el cuál me permite obtener lo introducido
  42.         ### por el usuario en la entrada
  43.          
  44.         $hora_dentro = $hora->get_text();
  45.         $min_dentro = $min->get_text();  ;
  46.         $lapass = $key->get_text();
  47.  
  48.         ### Una vez obtenido el valor introducido por el usuario(en este ejemplo
  49.         ### sería el nombre) y está guardado en la variable $texto_introducido
  50.         ### entonces escribo ese valor en la etiqueta vacía al igual que vimos en
  51.         ### capítulo anterior
  52.         #la hora la tenemos que pasar a minuto
  53.         $hora_total = $hora_dentro * 60;
  54.         $total_tiempo = $hora_total + $min_dentro;
  55.         #sumamos el resultado de la hora en minutos (+) los minutos introducidos por el usuario
  56.  
  57.         system("sudo shutdown -h $total_tiempo");
  58.  
  59.         #enviamos el comando a la consola "sudo", modo "SuperUsuario"(ROOT), shutdown el comando de apagado, -h (una de las opciones del comando), y le         #pasamos el parámetros "$total_tiempo", que es el tiempo que le indicamos al programa, para el apagado del pc
  60.  
  61.         system("$lapass");
  62.  
  63.         #al tener que ejecutar el comando shutdown como "SuperUsuario"(ROOT), mandamos la pass
  64.  
  65.         $etiqueta->set_markup("El equipo se apagará en $hora_dentro hora y $min_dentro minutos");
  66.  
  67.         #informamos en la ventana, mediante una etiqueta, que el comando ya ha sido enviado, y el tiempo de apagado
  68.   }
  69.         #subrutina , que es ejecutada cuando el usuario presiona la tecla "Cancelar".
  70.  
  71.         sub on_boton_para_apaga
  72.         {
  73.         #sirve para cancelar una orden de apagado      
  74.  
  75.         system("sudo shutdown -c");
  76.  
  77.         #volvemos a mandar el comando a la terminal,pero esta vez con la opción "-c", para matar el proceso de apagado
  78.  
  79.         $etiqueta->set_markup('El apagado fue cancelado por el usuario');
  80.  
  81.         #de nuevo informamos en la etiqueta(label), que el apagado fue cancelado
  82.         }
  83.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Código proyecto4.glade

Sintáxis: [ Descargar ] [ Ocultar ]
Using xml Syntax Highlighting
  1. <?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
  2. <!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
  3.  
  4. <glade-interface>
  5.  
  6. <widget class="GtkWindow" id="window1">
  7.   <property name="border_width">1</property>
  8.   <property name="width_request">320</property>
  9.   <property name="height_request">240</property>
  10.   <property name="visible">True</property>
  11.   <property name="title" translatable="yes">Auto-Apagado</property>
  12.   <property name="type">GTK_WINDOW_TOPLEVEL</property>
  13.   <property name="window_position">GTK_WIN_POS_NONE</property>
  14.   <property name="modal">False</property>
  15.   <property name="resizable">True</property>
  16.   <property name="destroy_with_parent">False</property>
  17.   <property name="decorated">True</property>
  18.   <property name="skip_taskbar_hint">False</property>
  19.   <property name="skip_pager_hint">False</property>
  20.   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
  21.   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
  22.   <property name="focus_on_map">True</property>
  23.   <property name="urgency_hint">False</property>
  24.  
  25.   <child>
  26.     <widget class="GtkVBox" id="vbox1">
  27.       <property name="visible">True</property>
  28.       <property name="homogeneous">False</property>
  29.       <property name="spacing">0</property>
  30.  
  31.       <child>
  32.         <widget class="GtkHBox" id="hbox1">
  33.           <property name="visible">True</property>
  34.           <property name="homogeneous">False</property>
  35.           <property name="spacing">0</property>
  36.  
  37.           <child>
  38.             <widget class="GtkLabel" id="hora">
  39.               <property name="width_request">59</property>
  40.               <property name="height_request">17</property>
  41.               <property name="visible">True</property>
  42.               <property name="label" translatable="yes">Hora</property>
  43.               <property name="use_underline">False</property>
  44.               <property name="use_markup">False</property>
  45.               <property name="justify">GTK_JUSTIFY_LEFT</property>
  46.               <property name="wrap">False</property>
  47.               <property name="selectable">False</property>
  48.               <property name="xalign">0.5</property>
  49.               <property name="yalign">0.5</property>
  50.               <property name="xpad">0</property>
  51.               <property name="ypad">0</property>
  52.               <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
  53.               <property name="width_chars">-1</property>
  54.               <property name="single_line_mode">False</property>
  55.               <property name="angle">0</property>
  56.             </widget>
  57.             <packing>
  58.               <property name="padding">0</property>
  59.               <property name="expand">False</property>
  60.               <property name="fill">False</property>
  61.             </packing>
  62.           </child>
  63.  
  64.           <child>
  65.             <widget class="GtkEntry" id="hora">
  66.               <property name="visible">True</property>
  67.               <property name="can_focus">True</property>
  68.               <property name="editable">True</property>
  69.               <property name="visibility">True</property>
  70.               <property name="max_length">0</property>
  71.               <property name="text" translatable="yes"></property>
  72.               <property name="has_frame">True</property>
  73.               <property name="invisible_char"></property>
  74.               <property name="activates_default">False</property>
  75.             </widget>
  76.             <packing>
  77.               <property name="padding">2</property>
  78.               <property name="expand">True</property>
  79.               <property name="fill">True</property>
  80.             </packing>
  81.           </child>
  82.         </widget>
  83.         <packing>
  84.           <property name="padding">0</property>
  85.           <property name="expand">True</property>
  86.           <property name="fill">True</property>
  87.         </packing>
  88.       </child>
  89.  
  90.       <child>
  91.         <widget class="GtkHBox" id="hbox2">
  92.           <property name="visible">True</property>
  93.           <property name="homogeneous">False</property>
  94.           <property name="spacing">0</property>
  95.  
  96.           <child>
  97.             <widget class="GtkLabel" id="minutos">
  98.               <property name="width_request">59</property>
  99.               <property name="height_request">17</property>
  100.               <property name="visible">True</property>
  101.               <property name="label" translatable="yes">Minuto</property>
  102.               <property name="use_underline">False</property>
  103.               <property name="use_markup">False</property>
  104.               <property name="justify">GTK_JUSTIFY_LEFT</property>
  105.               <property name="wrap">False</property>
  106.               <property name="selectable">False</property>
  107.               <property name="xalign">0.5</property>
  108.               <property name="yalign">0.5</property>
  109.               <property name="xpad">0</property>
  110.               <property name="ypad">0</property>
  111.               <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
  112.               <property name="width_chars">-1</property>
  113.               <property name="single_line_mode">False</property>
  114.               <property name="angle">0</property>
  115.             </widget>
  116.             <packing>
  117.               <property name="padding">0</property>
  118.               <property name="expand">False</property>
  119.               <property name="fill">False</property>
  120.             </packing>
  121.           </child>
  122.  
  123.           <child>
  124.             <widget class="GtkEntry" id="minutos">
  125.               <property name="visible">True</property>
  126.               <property name="can_focus">True</property>
  127.               <property name="editable">True</property>
  128.               <property name="visibility">True</property>
  129.               <property name="max_length">0</property>
  130.               <property name="text" translatable="yes"></property>
  131.               <property name="has_frame">True</property>
  132.               <property name="invisible_char"></property>
  133.               <property name="activates_default">False</property>
  134.             </widget>
  135.             <packing>
  136.               <property name="padding">0</property>
  137.               <property name="expand">True</property>
  138.               <property name="fill">True</property>
  139.             </packing>
  140.           </child>
  141.         </widget>
  142.         <packing>
  143.           <property name="padding">0</property>
  144.           <property name="expand">True</property>
  145.           <property name="fill">True</property>
  146.         </packing>
  147.       </child>
  148.  
  149.       <child>
  150.         <widget class="GtkHBox" id="hbox3">
  151.           <property name="visible">True</property>
  152.           <property name="homogeneous">False</property>
  153.           <property name="spacing">0</property>
  154.  
  155.           <child>
  156.             <widget class="GtkLabel" id="pass">
  157.               <property name="width_request">59</property>
  158.               <property name="height_request">17</property>
  159.               <property name="visible">True</property>
  160.               <property name="label" translatable="yes">Pass root</property>
  161.               <property name="use_underline">False</property>
  162.               <property name="use_markup">False</property>
  163.               <property name="justify">GTK_JUSTIFY_LEFT</property>
  164.               <property name="wrap">False</property>
  165.               <property name="selectable">False</property>
  166.               <property name="xalign">0.5</property>
  167.               <property name="yalign">0.5</property>
  168.               <property name="xpad">0</property>
  169.               <property name="ypad">0</property>
  170.               <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
  171.               <property name="width_chars">-1</property>
  172.               <property name="single_line_mode">False</property>
  173.               <property name="angle">0</property>
  174.             </widget>
  175.             <packing>
  176.               <property name="padding">0</property>
  177.               <property name="expand">False</property>
  178.               <property name="fill">False</property>
  179.             </packing>
  180.           </child>
  181.  
  182.           <child>
  183.             <widget class="GtkEntry" id="pass">
  184.               <property name="visible">True</property>
  185.               <property name="can_focus">True</property>
  186.               <property name="editable">True</property>
  187.               <property name="visibility">True</property>
  188.               <property name="max_length">0</property>
  189.               <property name="text" translatable="yes"></property>
  190.               <property name="has_frame">True</property>
  191.               <property name="invisible_char"></property>
  192.               <property name="activates_default">False</property>
  193.             </widget>
  194.             <packing>
  195.               <property name="padding">0</property>
  196.               <property name="expand">True</property>
  197.               <property name="fill">True</property>
  198.             </packing>
  199.           </child>
  200.         </widget>
  201.         <packing>
  202.           <property name="padding">0</property>
  203.           <property name="expand">True</property>
  204.           <property name="fill">True</property>
  205.         </packing>
  206.       </child>
  207.  
  208.       <child>
  209.         <widget class="GtkLabel" id="informa">
  210.           <property name="visible">True</property>
  211.           <property name="label" translatable="yes"></property>
  212.           <property name="use_underline">False</property>
  213.           <property name="use_markup">False</property>
  214.           <property name="justify">GTK_JUSTIFY_LEFT</property>
  215.           <property name="wrap">False</property>
  216.           <property name="selectable">False</property>
  217.           <property name="xalign">0.5</property>
  218.           <property name="yalign">0.5</property>
  219.           <property name="xpad">0</property>
  220.           <property name="ypad">0</property>
  221.           <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
  222.           <property name="width_chars">-1</property>
  223.           <property name="single_line_mode">False</property>
  224.           <property name="angle">0</property>
  225.         </widget>
  226.         <packing>
  227.           <property name="padding">0</property>
  228.           <property name="expand">False</property>
  229.           <property name="fill">False</property>
  230.         </packing>
  231.       </child>
  232.  
  233.       <child>
  234.         <widget class="GtkHBox" id="hbox4">
  235.           <property name="visible">True</property>
  236.           <property name="homogeneous">False</property>
  237.           <property name="spacing">0</property>
  238.  
  239.           <child>
  240.             <widget class="GtkButton" id="aplicar">
  241.               <property name="visible">True</property>
  242.               <property name="can_focus">True</property>
  243.               <property name="relief">GTK_RELIEF_NORMAL</property>
  244.               <property name="focus_on_click">True</property>
  245.               <signal name="clicked" handler="on_boton_recoger_datos_clicked" last_modification_time="Thu, 20 Aug 2009 04:41:56 GMT"/>
  246.  
  247.               <child>
  248.                 <widget class="GtkAlignment" id="alignment1">
  249.                   <property name="visible">True</property>
  250.                   <property name="xalign">0.5</property>
  251.                   <property name="yalign">0.5</property>
  252.                   <property name="xscale">0</property>
  253.                   <property name="yscale">0</property>
  254.                   <property name="top_padding">0</property>
  255.                   <property name="bottom_padding">0</property>
  256.                   <property name="left_padding">0</property>
  257.                   <property name="right_padding">0</property>
  258.  
  259.                   <child>
  260.                     <widget class="GtkHBox" id="hbox5">
  261.                       <property name="visible">True</property>
  262.                       <property name="homogeneous">False</property>
  263.                       <property name="spacing">2</property>
  264.  
  265.                       <child>
  266.                         <widget class="GtkImage" id="image1">
  267.                           <property name="visible">True</property>
  268.                           <property name="stock">gtk-ok</property>
  269.                           <property name="icon_size">4</property>
  270.                           <property name="xalign">0.5</property>
  271.                           <property name="yalign">0.5</property>
  272.                           <property name="xpad">0</property>
  273.                           <property name="ypad">0</property>
  274.                         </widget>
  275.                         <packing>
  276.                           <property name="padding">0</property>
  277.                           <property name="expand">False</property>
  278.                           <property name="fill">False</property>
  279.                         </packing>
  280.                       </child>
  281.  
  282.                       <child>
  283.                         <widget class="GtkLabel" id="label5">
  284.                           <property name="visible">True</property>
  285.                           <property name="label" translatable="yes">Aplicar</property>
  286.                           <property name="use_underline">True</property>
  287.                           <property name="use_markup">False</property>
  288.                           <property name="justify">GTK_JUSTIFY_LEFT</property>
  289.                           <property name="wrap">False</property>
  290.                           <property name="selectable">False</property>
  291.                           <property name="xalign">0.5</property>
  292.                           <property name="yalign">0.5</property>
  293.                           <property name="xpad">0</property>
  294.                           <property name="ypad">0</property>
  295.                           <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
  296.                           <property name="width_chars">-1</property>
  297.                           <property name="single_line_mode">False</property>
  298.                           <property name="angle">0</property>
  299.                         </widget>
  300.                         <packing>
  301.                           <property name="padding">0</property>
  302.                           <property name="expand">False</property>
  303.                           <property name="fill">False</property>
  304.                         </packing>
  305.                       </child>
  306.                     </widget>
  307.                   </child>
  308.                 </widget>
  309.               </child>
  310.             </widget>
  311.             <packing>
  312.               <property name="padding">0</property>
  313.               <property name="expand">False</property>
  314.               <property name="fill">False</property>
  315.             </packing>
  316.           </child>
  317.  
  318.           <child>
  319.             <widget class="GtkButton" id="detener">
  320.               <property name="visible">True</property>
  321.               <property name="can_focus">True</property>
  322.               <property name="relief">GTK_RELIEF_NORMAL</property>
  323.               <property name="focus_on_click">True</property>
  324.               <signal name="clicked" handler="on_boton_para_apaga" last_modification_time="Thu, 20 Aug 2009 04:43:06 GMT"/>
  325.  
  326.               <child>
  327.                 <widget class="GtkAlignment" id="alignment4">
  328.                   <property name="visible">True</property>
  329.                   <property name="xalign">0.5</property>
  330.                   <property name="yalign">0.5</property>
  331.                   <property name="xscale">0</property>
  332.                   <property name="yscale">0</property>
  333.                   <property name="top_padding">0</property>
  334.                   <property name="bottom_padding">0</property>
  335.                   <property name="left_padding">0</property>
  336.                   <property name="right_padding">0</property>
  337.  
  338.                   <child>
  339.                     <widget class="GtkHBox" id="hbox8">
  340.                       <property name="visible">True</property>
  341.                       <property name="homogeneous">False</property>
  342.                       <property name="spacing">2</property>
  343.  
  344.                       <child>
  345.                         <widget class="GtkImage" id="image4">
  346.                           <property name="visible">True</property>
  347.                           <property name="stock">gtk-stop</property>
  348.                           <property name="icon_size">4</property>
  349.                           <property name="xalign">0.5</property>
  350.                           <property name="yalign">0.5</property>
  351.                           <property name="xpad">0</property>
  352.                           <property name="ypad">0</property>
  353.                         </widget>
  354.                         <packing>
  355.                           <property name="padding">0</property>
  356.                           <property name="expand">False</property>
  357.                           <property name="fill">False</property>
  358.                         </packing>
  359.                       </child>
  360.  
  361.                       <child>
  362.                         <widget class="GtkLabel" id="label8">
  363.                           <property name="visible">True</property>
  364.                           <property name="label" translatable="yes">Detener</property>
  365.                           <property name="use_underline">True</property>
  366.                           <property name="use_markup">False</property>
  367.                           <property name="justify">GTK_JUSTIFY_LEFT</property>
  368.                           <property name="wrap">False</property>
  369.                           <property name="selectable">False</property>
  370.                           <property name="xalign">0.5</property>
  371.                           <property name="yalign">0.5</property>
  372.                           <property name="xpad">0</property>
  373.                           <property name="ypad">0</property>
  374.                           <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
  375.                           <property name="width_chars">-1</property>
  376.                           <property name="single_line_mode">False</property>
  377.                           <property name="angle">0</property>
  378.                         </widget>
  379.                         <packing>
  380.                           <property name="padding">0</property>
  381.                           <property name="expand">False</property>
  382.                           <property name="fill">False</property>
  383.                         </packing>
  384.                       </child>
  385.                     </widget>
  386.                   </child>
  387.                 </widget>
  388.               </child>
  389.             </widget>
  390.             <packing>
  391.               <property name="padding">0</property>
  392.               <property name="expand">False</property>
  393.               <property name="fill">False</property>
  394.             </packing>
  395.           </child>
  396.  
  397.           <child>
  398.             <widget class="GtkButton" id="salir">
  399.               <property name="visible">True</property>
  400.               <property name="can_focus">True</property>
  401.               <property name="relief">GTK_RELIEF_NORMAL</property>
  402.               <property name="focus_on_click">True</property>
  403.               <signal name="clicked" handler="on_boton_cerrar_clicked" last_modification_time="Thu, 20 Aug 2009 04:42:30 GMT"/>
  404.  
  405.               <child>
  406.                 <widget class="GtkAlignment" id="alignment3">
  407.                   <property name="visible">True</property>
  408.                   <property name="xalign">0.5</property>
  409.                   <property name="yalign">0.5</property>
  410.                   <property name="xscale">0</property>
  411.                   <property name="yscale">0</property>
  412.                   <property name="top_padding">0</property>
  413.                   <property name="bottom_padding">0</property>
  414.                   <property name="left_padding">0</property>
  415.                   <property name="right_padding">0</property>
  416.  
  417.                   <child>
  418.                     <widget class="GtkHBox" id="hbox7">
  419.                       <property name="visible">True</property>
  420.                       <property name="homogeneous">False</property>
  421.                       <property name="spacing">2</property>
  422.  
  423.                       <child>
  424.                         <widget class="GtkImage" id="image3">
  425.                           <property name="visible">True</property>
  426.                           <property name="stock">gtk-quit</property>
  427.                           <property name="icon_size">4</property>
  428.                           <property name="xalign">0.5</property>
  429.                           <property name="yalign">0.5</property>
  430.                           <property name="xpad">0</property>
  431.                           <property name="ypad">0</property>
  432.                         </widget>
  433.                         <packing>
  434.                           <property name="padding">0</property>
  435.                           <property name="expand">False</property>
  436.                           <property name="fill">False</property>
  437.                         </packing>
  438.                       </child>
  439.  
  440.                       <child>
  441.                         <widget class="GtkLabel" id="label7">
  442.                           <property name="visible">True</property>
  443.                           <property name="label" translatable="yes">Salir</property>
  444.                           <property name="use_underline">True</property>
  445.                           <property name="use_markup">False</property>
  446.                           <property name="justify">GTK_JUSTIFY_LEFT</property>
  447.                           <property name="wrap">False</property>
  448.                           <property name="selectable">False</property>
  449.                           <property name="xalign">0.5</property>
  450.                           <property name="yalign">0.5</property>
  451.                           <property name="xpad">0</property>
  452.                           <property name="ypad">0</property>
  453.                           <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
  454.                           <property name="width_chars">-1</property>
  455.                           <property name="single_line_mode">False</property>
  456.                           <property name="angle">0</property>
  457.                         </widget>
  458.                         <packing>
  459.                           <property name="padding">0</property>
  460.                           <property name="expand">False</property>
  461.                           <property name="fill">False</property>
  462.                         </packing>
  463.                       </child>
  464.                     </widget>
  465.                   </child>
  466.                 </widget>
  467.               </child>
  468.             </widget>
  469.             <packing>
  470.               <property name="padding">0</property>
  471.               <property name="expand">False</property>
  472.               <property name="fill">False</property>
  473.             </packing>
  474.           </child>
  475.         </widget>
  476.         <packing>
  477.           <property name="padding">0</property>
  478.           <property name="expand">True</property>
  479.           <property name="fill">True</property>
  480.         </packing>
  481.       </child>
  482.     </widget>
  483.   </child>
  484. </widget>
  485.  
  486. </glade-interface>
  487.  
Coloreado en 0.017 segundos, usando GeSHi 1.0.8.4


No está perfecto, pero es mi primer programa con ventana :)

¡Saludos! Fin y solucionado :)
Última edición por ubuntu el 2009-08-20 08:40 @403, editado 2 veces en total
Avatar de Usuario
ubuntu
Perlero nuevo
Perlero nuevo
 
Mensajes: 18
Registrado: 2009-08-19 07:30 @354

Re: Gtk2 libglade-WARNING

Notapor ubuntu » 2009-08-23 10:23 @474

Buenas.

Siento revivir el tema, pero me surgió un pequeño problema , os cuento.

Al pulsar aplicar en la ventana, manda el comando shutdown al terminal (podemos verlo en el código arriba expuesto).

El problema viene, que al mandar dicho comando, la ventana se queda congelada. Solo me pasa con el botón aplicar, y creo que el fallo está en:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. system("sudo shutdown -h $total_tiempo");
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Pues es el único comando que envía a la terminal, ya que los otros dos no los ejecuta:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. system("$lapass");
  2. $etiqueta->set_markup("El equipo se apagará en $hora_dentro hora y $min_dentro minutos");
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Espero haberme explicado bien, gracias de antemano :)
Avatar de Usuario
ubuntu
Perlero nuevo
Perlero nuevo
 
Mensajes: 18
Registrado: 2009-08-19 07:30 @354

Re: Gtk2 libglade-WARNING

Notapor explorer » 2009-08-23 10:48 @492

¿Has probado a poner la opción '-t segundos' a shutdown para que no haga un cierre inmediato de todos los programas?

¿Qué es $lapass? ¿No será la contraseña del sudo, verdad?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Gtk2 libglade-WARNING

Notapor ubuntu » 2009-08-23 11:09 @506

Hola explorer.

Solo puse la opción '-h' a shutdown.

Y la variable $lapass, es la contraseña de root, que se introduce también en el programa, ya que para ejecutar shutdown pide ser SuperUsuario.

Saludos
Avatar de Usuario
ubuntu
Perlero nuevo
Perlero nuevo
 
Mensajes: 18
Registrado: 2009-08-19 07:30 @354

Re: Gtk2 libglade-WARNING

Notapor explorer » 2009-08-23 15:36 @692

Pues mal... cuando ejecutas el sudo, el sistema queda esperando a que se le introduzca la contraseña, pero el system() no ha terminado, por lo que no devuelve el control a tu programa.

Debes entregar la contraseña en la misma llamada, o hacer que sudo no pregunte por ninguna contraseña.

Para lo primero, puedes usar la opción -S del sudo para pasarle la contraseña por la entrada estándar.

Para lo segundo, edita el fichero /etc/sudoers y agrega una línea como esta:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
%usuario ALL = NOPASSWD: /sbin/shutdown
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

siendo usuario el nombre del usuario que ejecuta el programa.

Otra opción, naturalmente, es dar permisos de ejecución al comando shutdown.

Me parece que hay más opciones, pero ahora mismo no me acuerdo de más.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Gtk2 libglade-WARNING

Notapor ubuntu » 2009-08-23 16:57 @748

Gracias por tu respuesta, explorer.

Lo puse como me dijiste , 1º opción :
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. system("sudo -S shutdown -th $total_tiempo");
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Aun así, la ventana se queda "congelada" :
Pantallazo-1.png
Pantallazo-1.png (21.55 KiB) Visto 1332 veces


Es extraño, con el botón cancelar no me pasa y también manda un comando a la terminal y funciona perfectamente:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. system("sudo shutdown -c");
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


¡Saludos!
Avatar de Usuario
ubuntu
Perlero nuevo
Perlero nuevo
 
Mensajes: 18
Registrado: 2009-08-19 07:30 @354

Siguiente

Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados