Dudas sobre manejo de TKinter
visualnex
visualnex en tutopia.com
Dom Ene 11 15:36:00 CET 2004
#Hola,
#
#antes que nada, te recomiendo encarecidamente que leas los documentos
introductorios #sobre Tkinter. Te aclarán muchas cosas. El problemas es que
están en inglés y creo que #no hay traducción. Están en:
#http://www.pythonware.com/library/tkinter/an-introduction-to-tkinter.pdf y
#http://www.nmt.edu/tcc/help/pubs/tkinter.pdf
#si hay más debería encontrarlo siempre en:
#http://www.python.org/topics/tkinter/doc.html#
#Saludos, Erny
#....
Lei los apuntes, pero a veces no son lo suficientemente claros para lo que
uno busca,
o si la respuesta esta ahi, falta una palabrita para darme cuenta. Gracias
por tus
modificaciones. Opte por utilizar Grid para acomodar las etiquetas y demas.
# P: Porque se me "cuelga" la aplicacion y no sale en ...
# R: a mi no se me cuelga. de todos modos, es mejor terminar bien ...
#Evento para salir de la ventana principal
#def bSalir(self):
# self.quit()
se me "cuelga" utilizandolo desde el idle paytonwin, desde el IDLE nativo
no.
lo solucione poniendo:
self.frame.master.destroy()
self.frame.quit()
AHORA paso a una nueva consulta, el objetivo es ver si la logica que uso
para
llamar a otras pantallas desde una principal y regresar esta bien.
Agradecere
sugerencias: procedimientos: consulta, mostrar,ocultar
copio todo el codigo fuente por si hay otras sugerencias! ...
********************************************************
"""Aplicacion de Gestion de Clientes basada en:
PythonWin 2.2.3,TKinter,Win32all build 162
por Marcelo Ametller - 2004 v0.0.2 - Cordoba,Argentina.
Consultas y sug: visualnex en tutopia.com ,version reducida"""
from Tkinter import *
import sys
class FiInicio:
"""Clase para mostrar una ficha de un cliente"""
def __init__(self, master):
self.frame = Frame(master,width=300,height=150)
self.crearInterfaz()
def crearInterfaz(self):
frame=self.frame
frame.master.protocol("WM_DELETE_WINDOW",self.close)
menubar=Menu(frame)
menubar.add_command
climenu = Menu(menubar,tearoff=0)
climenu.add_command(label="Consulta",command=self.consulta)
menubar.add_cascade(label="Clientes",menu=climenu)
frame.master.config(menu=menubar)
#Muestro ventana principal
frame.grid()
def consulta(self):
self.ocultar()
#llamo a la aplicacion para mostrar
#la ficha de cliente
ini=Tk()
app = FiCliente(ini)
ini.mainloop()
#Mostrar Pantalla inicial
self.mostrar()
def ocultar(self):
self.frame.master.withdraw()
def mostrar(self):
self.frame.master.deiconify()
def close(self):
self.frame.master.destroy()
self.frame.quit()
class FiCliente:
"""Clase para mostrar una ficha de un cliente"""
def __init__(self, master):
self.frame = Frame(master,width=300,height=150)
self.crearInterfaz()
def crearInterfaz(self):
frame=self.frame
frame.master.title('FICHA DE CLIENTE')
frame.master.geometry(rootWinPos)
frame.master.protocol("WM_DELETE_WINDOW",self.close)
Label(frame,text="Codigo:").grid(row=0,col=0,sticky=W)
self.eCodigo=Entry(frame, width=6)
self.eCodigo.grid(row=0,col=1,sticky=W, padx=3, pady=3)
self.eCodigo.focus_force()
Label(frame,text="Apellido:").grid(col=0,sticky=W)
self.eApellido=Entry(frame,width=30)
self.eApellido.grid(row=1,col=1,sticky=W, padx=3,pady=3)
self.fBot=Frame(frame)
Button( self.fBot, width=6, text = "Buscar",
command=self.bBuscar ).grid(row=0,col=0)
Button( self.fBot, width=6, text = "Salir",
command=self.close ).grid(row=0,col=2)
self.fBot.grid(col=1)
#Muestro ventana principal
frame.pack(expand=YES, fill=BOTH)
def bBuscar(self): #Evento al pulsar Boton grabar
"""Obtiene los datos de un cliente de la clase Clientes"""
unCli=Clientes()
Datos=unCli.Ver()
self.Llenar(Datos)
def Limpiar(self):
"""Limpia el contenido de los campos de pantalla"""
self.eCodigo.delete(0,END)
self.eApellido.delete(0,END)
def Llenar(self,Datos):
"""LLena los campos de pantalla con sus respectivos valores"""
self.Limpiar()
self.eCodigo.insert(END,Datos["Codigo"])
self.eApellido.insert(END,Datos["Apellido"])
def close(self):
self.frame.master.destroy()
self.frame.quit()
#Declaracion de constantes de la aplicacion
rootWinPos = "+150+150"
class Clientes:
"""Clase para el manejo de clientes"""
def __init__(self):
pass
def Ver(self):
"""Devuelve los datos de un cliente predefinido"""
Datos = {}
Datos["Codigo"]="010001"
Datos["Apellido"]="Gianotti Walter"
Datos["Calle"]="Av Colon 409"
Datos["Localidad"]="Cordoba"
return Datos
class MyApp:
"""Aplicacion Principal Gestion de Clientes"""
root=Tk()
app = FiInicio(root)
root.mainloop()
sys.exit()
myapp = MyApp()
********************************************************
Gracias y saludos.
Marcelo
Más información sobre la lista de distribución Python-es