Où puis-je trouver le tutoriel le plus moderne qui enseigne tkinter
en même temps que ttk
?
Tkinter
semble être la seule solution en Python 3 (ne pas suggérer Python 2), et ttk
m'a donné l'espoir d'une belle interface graphique.
J'ai trouvé le TkDocs Ce tutoriel est très utile. Il décrit la construction Tk
à l'aide de Python et Tkinter
y ttk
et prend note des différences entre Python 2 et 3. Il comporte également des exemples en Perl, Ruby et Tcl, puisque l'objectif est d'enseigner Tk lui-même, et non les liaisons pour un langage particulier.
Je ne l'ai pas parcouru en entier du début à la fin, je n'ai utilisé qu'un certain nombre de sujets à titre d'exemple pour des choses sur lesquelles j'étais bloqué, mais il est très instructif et confortablement écrit. Aujourd'hui, la lecture de l'introduction et des premières sections me fait penser que je vais commencer à travailler sur le reste du livre.
Enfin, il est actuel et le site a un aspect très agréable. Il a également un tas d'autres pages qui valent la peine d'être consultées (Widgets, Ressources, Blog). Ce type fait beaucoup pour non seulement enseigner Tk, mais aussi pour améliorer la compréhension des gens sur le fait que ce n'est pas la bête immonde qu'elle était autrefois.
Je recommande le Référence NMT Tkinter 8.5 .
Les noms de modules utilisés dans certains exemples sont ceux utilisés dans Python 2.7.
Voici une référence pour les changements de noms dans Python 3 : lien
L'une des commodités de ttk est que vous pouvez choisir une préexistence thème ,
qui est un ensemble complet de Styles appliqué à la ttk les widgets.
Voici un exemple que j'ai écrit (pour Python 3) qui vous permet de sélectionner n'importe quel thème disponible dans une liste de thèmes. Boîte combinée :
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('<Return>', 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()
Remarque : j'ai remarqué qu'un thème 'vista' est disponible lorsque l'on utilise Python 3.3 (mais pas 2.7).
La référence NMT est une Excellent ressource. Je garde le tkinter version pdf ouvert chaque fois que je travaille avec tkinter
Je recommande la lecture du documentation . Il est simple et fait autorité, et convient bien aux débutants.
Comme vous l'avez mentionné, le ttk était autrefois le fil d'espoir lorsqu'il était exposé au premier regard.
mais j'ai encore échoué. ttk améliore l'apparence de certains widgets. mais le problème est que ttk change aussi les méthodes de ces widgets, qui proviennent de tk. par exemple, dans ttk, vous ne pouvez plus appeler deselect/select/toggle sur Checkbutton comme le fait tkinter.
en un mot, ttk est une autre librairie de gui, pas entièrement compatible avec tk. Un autre gâchis.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
Eh bien, si les bibliothèques de Python 2 ne sont pas portées vers Python 3, transformons Python 2 en Python 3.........
from __future__ import unicode_literals,division,print_function
etc.18 votes
@Jbernardo, Tkinter n'est pas aussi mauvais qu'il l'était, et vous pouvez faire de très belles interfaces graphiques avec lui. Il utilise les contrôles et les thèmes du système mieux que les versions précédentes. Vous devrez peut-être travailler un peu avec les marges et le padding pour obtenir un meilleur espacement. C'est une chose que PyQt fait mieux dès le départ. PyQt est également une excellente bibliothèque (ainsi que PyGTK), mais vous pouvez toujours produire de belles interfaces avec Tkinter.
13 votes
@JBernado : laid est subjectif, et un peu déconnecté de la tk moderne avec des widgets à thème. De plus, la plupart des applications n'ont franchement pas besoin de beaucoup de piquant visuel - la fonctionnalité et/ou la facilité de développement sont plus souvent le facteur déterminant.
0 votes
@Bryan "fonctionnalité et/ou facilité de développement" Mec, c'est ce dont il s'agit avec PyQt. Qt Designer est un excellent outil pour les interfaces
3 votes
@BlaXpirit : Le portage vers Python 3 est une bonne idée. Faites-le ! Mais c'est beaucoup plus complexe que ce que vous indiquez. Voici de l'aide ! python3porting.com
9 votes
Suggérer PyQt contre Tkinter, c'est comme suggérer Oracle contre Sqlite.