[Python-es] Algunas cuestiones sobre ventanas

damufo damufo en gmail.com
Lun Ene 21 16:46:47 CET 2008



Luis Orellana Orihuela escribiu:
> Hola a todos,
> 
> Uso un pequeño script en el que se muestra una ventana no modular. El código
> que uso para tal fin lo tomé de la lista (Gracias):
> 
> 
> class ModelessDialog(Toplevel):
> 
>     def __init__(self, parent, title = None):
> 
>         Toplevel.__init__(self, parent)
> 
>         if parent.winfo_viewable():
>             self.transient(parent)
> 
>         if title:
>             self.title(title)
> 
>         self.parent = parent
> 
>         body = Frame(self)
>         self.body(body)
>         body.pack(padx=5, pady=5)
> 
>         self.buttonbox()
> 
>         self.protocol("WM_DELETE_WINDOW", self.close)
> 
>         if self.parent is not None:
>             self.geometry("+%d+%d" % (parent.winfo_rootx()+30,
>                                       parent.winfo_rooty()+30))
> 
>     def body(self, master):
>         # hook
>         pass
> 
>     def buttonbox(self):
>         # hook; default=[OK]
>         box = Frame(self)
>         w = Button(box, text="OK", width=10, command=self.close
> ,default=ACTIVE)
>         w.pack(side=LEFT, padx=5, pady=5)
>         self.bind("<Return>", self.close)
>         box.pack()
> 
>     def close(self, event=None):
>         if self.parent is not None:
>             self.parent.focus_set()
>         self.destroy()
> 
> class MessageDialog(ModelessDialog):
> 
>     def __init__(self, parent, title=None, message=''):
>         self.message = message
>         ModelessDialog.__init__(self, parent, title)
> 
>     def body(self, master):
>         w = Label(master, text=self.message, justify=LEFT)
>         w.grid(row=0, padx=5, sticky=W)
> #-------------------------------------------------------------------------------
> 
> No estoy muy familiarizado con la programación de ventanas y querría cambiar
> la apariencia de la ventana que se muestra:
> 
>    - Actualmente no se muestra centrada, querría que se mostrase
>    centrada.
>    - No tiene el foco, sale en segundo plano, querría que saliese con el
>    foco.
>    - Cambiar tamaño de fuente, negritas y tal  del mensaje que se muestra
>    ...
Para que salga centrada
en el def__init__(self, parent): de la ventana:
self.Center()
> 
> No me ha dado tiempo a investigar mucho porque no he tenido tiempo.
> Paralelamente a este mensaje seguiré googleando a ver si soluciono estos
> problemas que apriori parecen sencillos de solventar.
> 
> Gracias!
> _______________________________________________
> Lista de correo Python-es 
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
> 


Más información sobre la lista de distribución Python-es