ventanas tutorial toplevel mainloop gui for español botones python windows-7 tkinter tcl window-style

python - tutorial - Configuración de estilos de ventana con Tkinter/Tcl: sin botón de salida



toplevel tkinter (2)

La siguiente opción indica al administrador de ventanas que no decore la ventana (es decir, sin barra de título y botones de ventana, más sin bordes)

root.overrideredirect(True)

Un argumento falso restaura las decoraciones.

Sé que Tkinter es solo una capa delgada sobre Tcl / Tk. Tkinter puede hacer algunas cosas para cambiar el estilo de las ventanas. Un ejemplo sería root.attributes(''-toolwindow'', True) . Esto cambiaría el estilo de ventana, al de una ventana de herramientas. Sin embargo, estoy buscando ir un poco más bajo nivel.

Sospecho que en algún momento Tcl / Tk refrences los estilos de ventana de Windows. Estoy bastante seguro de que tendría que hacer esto para establecer el estilo de la ventana y, por extensión, el estilo de la ventana Tkinter. Intento dar una ventana de Tkinter de la que estoy bastante seguro es el estilo WS_DLGFRAME . Sin embargo, no estoy seguro de cómo abordar esto.

Me pregunto dónde en la parte Tcl / Tk de Tkinter asigna estilos de Windows y qué tendría que agregar para obtener este estilo.

El objetivo final es obtener un estilo de borde de ventana de Tkinter similar al siguiente (tenga en cuenta que carece de un botón de salida):

Esto está en Windows 7, por cierto.


Si está familiarizado con C, descargue el código fuente Tk .

He buscado rápidamente, y en este archivo: ./win/tkWinWm.c en la línea 3072 ( tk859-src.zip ), tiene la función static int WmAttributesCmd() , que trata de -toolwindow como usted dijo, más tarde actualizado por UpdateWrapper() .

Así que no hay una manera fácil de cambiarlo, a menos que cambie el código fuente de Tk.

Alternativamente, puede usar FindWindow y buscar la clase de ventana de Tk TK_WIN_CHILD_CLASS_NAME definida como TkChild , y luego usar SetWindowLongPtr( GWLP_STYLE, ...) para cambiar el estilo (pero esto requiere alguna llamada ffi a C u otros medios).

Yo mismo no estoy familiarizado con Tcl / Tk, así que tómalo con un grano de sal. ¿Por qué no probar la comunidad Tcl / Tk?