56 votes

Nouveau tutoriel sur tkinter et ttk pour Python 3

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.

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.

53voto

Todd Points 1978

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.

0 votes

Ce que je reproche à ce tutoriel, c'est que les exemples qu'il contient sont, par manque d'un meilleur mot, laids. Si l'on veut dissiper le mythe selon lequel les applications TK ne sont pas jolies, ne devrait-on pas enseigner aux gens comment le faire correctement ?

20voto

Honest Abe Points 2343

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).

3 votes

La référence NMT est une Excellent ressource. Je garde le tkinter version pdf ouvert chaque fois que je travaille avec tkinter

1 votes

NMT semble avoir cessé d'héberger la référence tkinter. PDF

3voto

vy32 Points 6298

Je recommande la lecture du documentation . Il est simple et fait autorité, et convient bien aux débutants.

2voto

Qishan Points 53

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.

0voto

Carel Points 162

Ce n'est pas vraiment frais mais ce est concise, et d'après ce que j'ai vu, elle est valable pour Python 2 et 3.

0 votes

Pas un mot sur ttk

0 votes

Oh yikers, j'ai oublié cette partie ^_^ bien qu'ils soient assez interchangeables d'après ce que j'ai vu.

Prograide.com

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.

Powered by:

X