Saltar al contenido

Nuevo tutorial sobre tkinter y ttk para Python 3

este problema se puede resolver de diferentes formas, pero en este caso te compartimos la respuesta más completa en nuestra opinión.

Solución:

He encontrado que el tutorial de TkDocs es muy útil. Describe la construcción Tk interfaces utilizando Python y Tkinter y ttk y toma notas sobre las diferencias entre Python 2 y 3. También tiene ejemplos en Perl, Ruby y Tcl, ya que el objetivo es enseñar Tk en sí, no los enlaces para un lenguaje en particular.

No he repasado todo de principio a fin, sino que solo he usado una serie de temas como ejemplos de cosas en las que estaba atascado, pero es muy instructivo y está escrito cómodamente. Hoy, leer la introducción y las primeras secciones me hace pensar que comenzaré a trabajar en el resto.

Finalmente, es actual y el sitio tiene un aspecto muy agradable. También tiene un montón de otras páginas que vale la pena revisar (Widgets, Recursos, Blog). Este tipo está haciendo mucho no solo para enseñar Tk, sino también para mejorar la comprensión de la gente de que no es la bestia fea que alguna vez fue.

Recomiendo la referencia NMT Tkinter 8.5.

  • Widgets temáticos
  • Personalización y creación de temas y estilos ttk
  • Encontrar y usar temas
  • Usar y personalizar estilos ttk
  • La capa del elemento ttk

Los nombres de los módulos que se usan en algunos ejemplos son los que se usan en Python 2.7.
Aquí hay una referencia para los cambios de nombre en Python 3: enlace

Una de las ventajas de ttk es que puedes elegir un preexistente tema,
que es un conjunto completo de estilos aplicados a los widgets ttk.

Aquí hay un ejemplo que escribí (para Python 3) que le permite seleccionar cualquier tema disponible de un Caja combo:

import random
import tkinter
from tkinter import ttk
from tkinter import messagebox

class App(object):

    def __init__(self):
        self.root = tkinter.Tk()
        self.style = ttk.Style()
        available_themes = self.style.theme_names()
        random_theme = random.choice(available_themes)
        self.style.theme_use(random_theme)
        self.root.title(random_theme)

        frm = ttk.Frame(self.root)
        frm.pack(expand=True, fill='both')
    # create a Combobox with themes to choose from
        self.combo = ttk.Combobox(frm, values=available_themes)
        self.combo.pack(padx=32, pady=8)
    # make the Enter key change the style
        self.combo.bind('', self.change_style)
    # make a Button to change the style
        button = ttk.Button(frm, text='OK')
        button['command'] = self.change_style
        button.pack(pady=8)

    def change_style(self, event=None):
        """set the Style to the content of the Combobox"""
        content = self.combo.get()
        try:
            self.style.theme_use(content)
        except tkinter.TclError as err:
            messagebox.showerror('Error', err)
        else:
            self.root.title(content)

app = App()
app.root.mainloop()

Nota al margen: he notado que hay un tema ‘vista’ disponible cuando se usa Python 3.3 (pero no 2.7).

Recomiendo leer la documentación. Es simple y autorizado, y bueno para principiantes.

Recuerda algo, que puedes permitirte aclarar tu experiencia si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *