Ver Mensaje Individual
  #5 (permalink)  
Antiguo 25/01/2011, 15:04
faidoc
 
Fecha de Ingreso: julio-2010
Mensajes: 7
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Duda sobre destruir ventanas - Pygtk

Cita:
Iniciado por razpeitia Ver Mensaje
Cambia show por show_all para hacer visible también los widgets que están dentro de la ventana.

No hay manera, pongo el codigo completo por si el problema esta en otra parte.

Código:
#!/usr/bin/env python

import pygtk
import gtk, gobject
import os, sys
import urllib2
import time
import threading, thread
from twill.commands import go, fv, submit

OS = sys.platform
stop = 0

if OS != "win32":
    # UNIX
    gtk.gdk.threads_init()
else:
    # Windows
    gobject.threads_init()

class icono:
   def __init__(self):
      builder = gtk.Builder()
      if OS != "win32":
        builder.add_from_file("/usr/share/resanator/resanator-gui.glade")
      else:
        os.chdir("C:\\resanator")
        builder.add_from_file("resanator-gui.glade")
      self.iconobandeja = builder.get_object("iconobandeja")
      self.menu = builder.get_object("menu")
      self.acerca = builder.get_object("acerca")
      self.preferencias = builder.get_object("preferencias")
      self.usuario_en = builder.get_object("usuario_en")
      self.clave_en = builder.get_object("clave_en")
      self.guardar_credenciales = builder.get_object("guardar_credenciales")

      builder.connect_signals(self)
      
   def on_iconobandeja_activate(self, widget, data=None):
      self.acerca.show()
      
   def on_preferencias_destroy(self, widget, data=None):
		self.preferencias.destroy()
		
   def on_guardar_credenciales_clicked(self,widget, data=None):
	   usuario = self.usuario_en.get_text()
	   clave = self.clave_en.get_text()
	   datos = [usuario + "\n", clave]
	   if OS != "win32": 
		   os.chdir(os.environ['HOME'])
		   f = open (".resanator.conf", "w")
		   f.writelines(datos)
	   else:
		   f = open ("resanator.txt", "w")
		   linea = f.writelines(datos)
	   f.close()
	   self.preferencias.destroy()
	
   def on_preferencias_activate(self, widget, data=None):
	   self.preferencias.show_all()
	      
   def on_acerca_close(self, widget, data=None):
	   self.acerca.hide()  #No funciona
   
   def on_iconobandeja_popup_menu(self, widget, button, activate_time): 
      self.menu.popup(None, None, None, button, activate_time)

   def on_ejecutar_activate(self, widget, data=None):
		try:
			if OS != "win32":  
				os.chdir(os.environ['HOME'])
				f = open (".resanator.conf", "r")
				for index in range(2):
					linea = f.next()
					if index != 1:
						usuario = linea
						usuario = usuario [:-1]
					else:
						clave = linea	
						print usuario
						print clave
			else:
				f = open ("resanator.txt", "r")
				for index in range(2):
					linea = f.next()
					if index != 1:
						usuario = linea
						usuario = usuario [:-1]
					else:
						clave = linea
						
			f.close()
			threading.Thread(target=self.ejecutar, args=(stop,usuario,clave,)).start()
		except:
			self.preferencias.show_all()
	
   
   def on_salir_activate(self, widget, data=None): 
      pid = os.getpid()
      os.kill(pid, 15)

      

   def ejecutar(self,stop,usuario,clave):
	
	if stop == 0:
		while 1:
			go('https://172.16.0.1:8090/corporate/webpages/httpclientlogin.jsp?loginstatus=null&logoutstatus=null&message=null&liverequesttime=null&livemessage=null&$')

			try:
				fv("1", "username", usuario)
				fv("1", "password", clave)
		
				submit('0')
			except urllib2.HTTPError, e:
				sys.exit("%d: %s" % (e.code, e.msg))
			except IOError, e:
				print e
			except:
				pass
			time.sleep(240)
	if stop == 1:
		print stop
		

if __name__ == "__main__":  
	icono()
	gtk.main()