Centrar ventana

Luis Orellana Orihuela luis.ore.ori en gmail.com
Mar Feb 12 10:10:26 CET 2008


> Necesito que una ventana Tk se muestre en el centro de la pantalla. El
> caso es que la ventana tiene tamaño variable, es decir varía depende del
> texto a mostrar. El código que uso para indicar la posición es:
>
>
>  ox,oy=self.winfo_screenwidth()/2,self.winfo_screenheight()/2
>  self.geometry("+%d+%d" % (ox,oy) )
>
>
> El caso es que me sale totalmente descentrado. No se si hay alguna función
> que te la centra, sería lo ideal.
>
> Otro aspecto que me gustaría controlar es el foco. A veces sale con el
> foco y otras veces no. Me gustaría controlar este aspecto. Decir que la
> ventana es no modular.
>
> Gracias
>

No he encontrado el método que necesitaba. He optado por hacerlo un poco en
"plan cutre":

            w=500
            h=100 + (lin*40)
            ws = self.winfo_screenwidth()
            hs = self.winfo_screenheight()
            x = (ws/2) - (w/2)
            y = (hs/2) - (h/2)
            self.geometry('%dx%d+%d+%d' % (w, h, x, y))

He fijado el ancho de ventana, y el parámetro variable es el alto de la
misma. Este alto varía en función del texto a mostrar. El string que se
muestra hay que procesarlo previamente para que no se pase del ancho de la
ventana y así convertirlo digamos en un párrafo. Lo que hago es contar el
número de líneas de este párrafo a mostrar (lin) y calcular el alto de
ventana en función de este parámetro. No es la solución más elegante ...
pero el resultado me lo da.

Por otro lado el foco sigue "a su bola" no se como hacer para que la ventana
se muestre con el foco.
_______________________________________________
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