Quelle est la différence entre les widgets de tkinter, et tkinter.ttk en Python?

le module principal tkinter et son sous-module ttk en Python 3 semblent contenir des widgets identiques (i.e. Buttons , CheckButtons , etc.).

ainsi, lors de la création d'un bouton, on a la liberté d'utiliser soit un tkinter.Button widget ou un tkinter.ttk.Button .

savez-vous quelle est la différence entre eux? Pourquoi voudriez-vous choisir l'un ou l'autre?

26
demandé sur nbro 2013-10-24 13:14:10

2 réponses

les widgets de tkinter sont hautement et facilement configurables. Vous avez le contrôle presque complet sur leur apparence-largeurs de bordure, polices, images, couleurs, etc.

ttk widgets utiliser styles pour définir leur apparence, il faut donc un peu plus de travail si vous voulez un bouton non standard. ttk widgets sont également un peu sous-documentées. Comprendre le thème sous-jacent et les moteurs de mise en page (layout dans les widgets eux-mêmes, pas pack , grid et place ) est un défi.

en général, les widgets thématiques vous donneront une application qui semble plus" native", mais au détriment d'une perte de configurabilité.

mon conseil est d'utiliser des widgets ttk si vous voulez que votre interface graphique soit un peu plus moderne, et les widgets tkinter si vous avez besoin d'un peu plus de configurabilité. Vous pouvez les utiliser tous les deux dans les mêmes applications.

37
répondu Bryan Oakley 2017-04-10 14:06:02

vous pouvez jeter un oeil à conversion des applications existantes pour utiliser les widgets carrelage

Voir aussi:

Savoirs Traditionnels Widget Style De Soutien

comme indiqué dans le présent document:

récemment, d'autres outils Open Source tels que Qt (utilisé par le KDE projet) et GTK (utilisé par le logiciel d'édition graphique GIMP et le Projet Gnome) ont émergé comme des alternatives puissantes et libres au Motif pour X-Window GUI development. La croissance rapide de la réussite de l'Open Source des systèmes comme GNU / Linux ont aidé les deux boîtes à outils à attirer communauté de développeurs, et l'entreprise (et parfois amical) la concurrence entre les deux communautés a entraîné une explosion de nouveaux caractéristique. Soif de liberté et de personnalisation créé le besoin pour themeability.

la mise en œuvre actuelle des savoirs traditionnels ne fournit regarder et sentir sur plates-formes supportées (Windows, X-Window, MacOS). Ce manque en partie explique la perte de l'esprit de Tk, en particulier parmi les développeurs Linux, où le support du thème est considéré comme une fonctionnalité "cool" ou indispensable.

alors que le but d'hier de beaucoup D'interfaces graphiques était visuel multiplateformes l'uniformité (Qt et GTK empruntaient une grande partie de leur apparence visuelle à Windows, qui a emprunté plus tôt de NeXTStep), il est maintenant assez commun pour trouver d'énormes différences visuelles sur les ordinateurs de bureau d'aujourd'hui, même sur des système. Les concours de Screenshot sont assez fréquents de nos jours.

...

de nombreux utilisateurs de savoirs traditionnels peuvent considérer les thèmes soutenus comme cosmétiques ou de moindre importance. importance que les caractéristiques très nécessaires telles que les mégawidgets ou objectivation. Néanmoins, il s'agit d'une caractéristique critique à mise en œuvre pour la viabilité à long terme des savoirs traditionnels. Beaucoup de cours sont maintenant promouvoir Qt, GTK ou (aarggg!) Swing à la place de Motif, ne laissant aucune salle pour Savoirs. Quelles que soient ses qualités (cross-platform, performance, facilité D'utilisation, d'internationalisation et de support Unicode), l'absence de la facilité d'accès sera toujours considérée comme l'une des principales raisons de ne pas utilisation des savoirs traditionnels. Les Applications utilisant des Tk au lieu de GTK seront regardées comme " étranger" sur le thème de pixmap Linux desktop, ou même sur les nouveaux MacOS et Windows versions, comme les applications pré-8.0 étaient sur les ordinateurs de bureau non-X.

il y a quelques widgets (6 au total) qui font partie de ttk, et pas tkinter. il y a, comme indiqué ci-dessus, des éléments de configuration manquants, comme fg et bg, mais cela peut être fait avec le style, (introduit dans tk 8.5).

en utilisant les deux ensemble, avec tkinter.ttk surcharge tkinter vous donne le meilleur des deux mondes.

certains des widgets supplémentaires dans ttk sont très utiles (il y en a 6 qui ne se trouvent pas dans tkinter), comme Notebook (tabbed windows) que j'utilise souvent.

Larz60p

2
répondu Larz60p 2016-07-30 09:50:51