libreria - ¿Cuál es la diferencia entre los widgets de tkinter y tkinter.ttk en Python?
tkinter python 2.7 install (2)
Es posible que desee consultar Conversión de aplicaciones existentes para usar los widgets de Tile
Ver también:
Como se indica en este documento:
Recientemente, otros kits de herramientas de código abierto como Qt (utilizado por el proyecto KDE) y GTK (utilizado por el software de edición de gráficos GIMP y el proyecto Gnome) surgieron como alternativas potentes y gratuitas para Motif para el desarrollo de GUI de X-Window. El rápido crecimiento del éxito de los sistemas de código abierto como GNU / Linux ayudó a que ambos kits de herramientas atrajeran a una vasta comunidad de desarrolladores, y la competencia firme (ya veces amistosa) entre ambas comunidades generó una explosión de nuevas características. La sed de libertad y la personalización crearon la necesidad de la flexibilidad.
La implementación actual de Tk solo proporciona una apariencia nativa en plataformas compatibles (Windows, X-Window, MacOS). Esta falta explica en parte la pérdida de capacidad mental de Tk, especialmente entre los desarrolladores de Linux, donde el soporte de temas se considera una característica "genial" o imprescindible.
Mientras que el objetivo de ayer de muchas GUI era la uniformidad visual multiplataforma (Qt y GTK tomaron prestada gran parte de su apariencia visual de Windows, que se tomó prestada anteriormente de NeXTStep), ahora es bastante común encontrar grandes diferencias visuales en los escritorios actuales, incluso en sistemas similares . Concursos de capturas de pantalla son bastante comunes hoy en día.
...
Muchos usuarios de Tk pueden ver el soporte de temas como cosméticos o de menor importancia que las características necesarias, como megawidgets o objetivación. Sin embargo, esta es una característica crítica que se implementará para la viabilidad a largo plazo de Tk. Muchos cursos ahora están promocionando Qt, GTK o (aarggg!) Swing en lugar de Motif, sin dejar espacio para Tk. Cualesquiera que sean sus cualidades (multiplataforma, rendimiento, facilidad de uso, internacionalización y compatibilidad con Unicode), la falta de flexibilidad siempre se verá como una de las principales razones para no usar Tk. Las aplicaciones que usan Tk en lugar de GTK se verán como "extranjeras" en el escritorio Linux con temática pixmap, o incluso en las versiones más nuevas de MacOS y Windows, ya que las aplicaciones anteriores a la versión 8.0 se encontraban en escritorios que no son X.
Hay algunos widgets (6 en total) que forman parte de ttk y no de tkinter. hay, como se indicó anteriormente, algunos elementos de configuración faltantes, como fg y bg, pero esto se puede hacer con estilo, (introducido en tk 8.5).
Usando ambos juntos, con la sobrecarga de tkinter.ttk tkinter le ofrece lo mejor de ambos mundos.
Algunos de los widgets adicionales en ttk son muy útiles (hay 6 que no se encuentran en tkinter), como Notebook (ventanas con pestañas) que uso a menudo.
Larz60p
El módulo principal de tkinter
y su submódulo ttk
en Python 3 parecen contener widgets idénticos (es decir, Buttons
, Buttons
CheckButtons
, etc.).
Entonces, al crear un botón, uno tiene la libertad de usar un widget tkinter.Button
o un tkinter.ttk.Button
.
¿Sabes cuál es la diferencia entre ellos? ¿Por qué elegirías uno u otro?
Los widgets en tkinter
son muy fáciles de configurar. Usted tiene un control casi total sobre su aspecto: ancho de bordes, fuentes, imágenes, colores, etc.
ttk
widgets ttk
usan estilos para definir cómo se ven, por lo que requiere un poco más de trabajo si desea un botón no estándar. ttk
widgets ttk
también están poco documentados. Comprender el tema subyacente y los motores de diseño (el diseño dentro de los widgets, no el pack
, la grid
y el place
) es un desafío.
En términos generales, los widgets temáticos le darán una aplicación que se ve más "nativa", pero a expensas de una pérdida de configurabilidad.
Mi consejo es usar widgets ttk
si quieres que tu GUI se vea un poco más moderna, y widgets tkinter si necesitas un poco más de configurabilidad. Puedes usarlos en las mismas aplicaciones.