He intentado hacer un esquema general de tu problema, pero no me termina de salir bien. ¿Te refieres a esto?
Código Python:
Ver original#!/usr/bin/env python
# -*- coding: utf8 -*-
import pygtk
pygtk.require('2.0')
import gtk
class Ejemplo:
def quitarwindow1(self, widget, data=None):
self.window1.destroy()
del self.window1
self.mostrarwin2
def mostrarwin2(self, widget, data=None):
self.window2 = gtk.Window(gtk.WINDOW_TOPLEVEL) #Creamos la ventana 2
self.window2.connect("destroy",self.cerrar) #Cuando cerremos la ventana 2
self.label = gtk.Label("Ventana 2") #Creamos algo
self.window2.add(self.label) #añadimos a la ventana
self.label.show()
self.window2.show() #mostramos la ventana
def __init__(self):
self.window1 = gtk.Window(gtk.WINDOW_TOPLEVEL) #Creamos ventana 1
self.window1.connect("destroy", self.quitarwindow1) #Creamos función para eliminar cuando la cerremos
#~ self.window.set_border_width(10)
self.btt1 = gtk.Button("cerrar") #Creamos el botón que abre nueva ventana
self.btt1.connect("clicked", self.mostrarwin2, None) #Conectamos las señales
self.window1.add(self.btt1) #Añadimos el botón a la ventana
self.btt1.show() #Mostramos el botón
self.window1.show() #Mostramos la ventana
def cerrar(self,widget):
gtk.main_quit()
if __name__ == "__main__":
ejemplo = Ejemplo()
gtk.main()