25/01/2011, 15:04
|
| | 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 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()
|