[Python-es] Algunas cuestiones sobre ventanas

Luis Orellana Orihuela luis.ore.ori en gmail.com
Lun Ene 21 12:24:20 CET 2008


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
   ...

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!


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