FAQ PythonConsultez toutes les FAQ

Nombre d'auteurs : 15, nombre de questions : 269, dernière mise à jour : 10 septembre 2014  Ajouter une question

 

Cette FAQ a été réalisée à partir des questions posées sur le forum Python complétées par d'autres questions qui pouvaient nous sembler intéressantes de traiter. Toutefois il se peut que les réponses apportées contiennent des erreurs, imprécisions ... Vous pouvez dans ce cas contacter un des membres de la rédaction pour lui faire part de vos remarques.

L'équipe Python de Developpez.


SommaireGUITkinter / Tix / PmwTkinterFenêtre (7)
précédent sommaire suivant
 

Code python :
root.resizable(width=False, height=False)
Remarque: en revanche, cela n'empêchera pas le redimensionnement automatique de votre fenêtre si vous utilisez le gestionnaire de géométrie pack ou grid

Mis à jour le 20 mars 2006 Guigui_

De manière très simple, en appliquant l'instruction root.wm_state(newstate="zoomed"), vous afficherez la fenêtre principale en plein écran. Cette instruction ne fonctionne que sous windows

Mis à jour le 18 septembre 2006 Guigui_

Tkinter ne rafraîchit l'interface graphique que lorsque le traitement de l'exécution de la fonction lancée est terminée (par exemple lorsque l'on clique sur un bouton). Il arrive cependant parfois que la fonction exécutée dure un certain temps qui empêche donc la fenêtre de se redessiner.
Si vous voulez éviter ce désagrément, vous pouvez rajouter dans votre programme des appels à root.update()

Code python :
1
2
3
4
5
6
7
8
9
10
11
import Tkinter as Tk 
root = Tk.Tk() 
lbl = Tk.Label(text=0) 
def go(): 
    for i in range(100000): 
        lbl.config(text=i) 
        root.update()     
btn = Tk.Button(text='go', command=go) 
lbl.pack() 
btn.pack() 
root.mainloop()

Mis à jour le 20 mars 2006 Guigui_

Tkinter supporte un mécanisme appelé protocol handlers dont le plus utilisé est le protcole WM_DELETE_WINDOW qui définit ce qui doit se passer quand une fenêtre se ferme. Ce protocole doit être associé à un widget de type root ou Toplevel de la manière suivante widget.protocol("WM_DELETE_WINDOW", handler)handler est la fonction exécutée lors de la fermeture de la fenêtre.

Code python :
1
2
3
4
5
6
7
8
9
10
import Tkinter as Tk 
  
root = Tk.Tk() 
  
def Intercepte(): 
    print "Interception de la fermeture de la fenetre" 
    root.destroy() 
  
root.protocol("WM_DELETE_WINDOW", Intercepte) 
root.mainloop()

Mis à jour le 20 novembre 2006 Guigui_

Pour modifier le texte de la barre de titre d'un widget de type root ou Toplevel il suffit d'appliquer la fonction w.title(mytitle)mytitle est le nouveau texte en question.

Code python :
1
2
3
4
5
6
7
8
9
10
11
12
import Tkinter as Tk 
  
root = Tk.Tk() 
root.title('Main root') 
  
def createframe(): 
    toplevel = Tk.Toplevel(root) 
    toplevel.title('Subroot') 
  
btn = Tk.Button(root, text = 'create a frame', command = createframe) 
btn.pack() 
root.mainloop()

Mis à jour le 2 janvier 2007 Guigui_

Pour modifier l'icône de la barre de titre d'une fenêtre root ou toplevel, il vous suffit d'appliquer la fonction root.iconbitmap(myicon)myicon représente le chemin d'accès de votre icône (testé uniquement avec des fichiers de type .ico)

Code python :
1
2
3
4
import Tkinter as Tk 
root = Tk.Tk() 
root.iconbitmap("MyIcon.ico") 
root.mainloop()

Mis à jour le 2 janvier 2007 Guigui_

Si vous avez besoin de créer des fenêtres root (Tk) ou TopLevel, vous pouvez lui appliquer la fonction overrideredirect(flag=None) avec un flag ayant une valeur non nulle. Cela peut être utile par exemple pour afficher une fenêtre contenant un message (une infobulle par exemple). Toutefois, vous ne pourrez ni déplacer ni détruire cette fenêtre de manière ordinaire (il faudra donc prévoir dans votre code les fonctions nécessaires pour gérer cela).

Code python :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import Tkinter as Tk 
  
root = Tk.Tk() 
  
def affiche(): 
    top=Tk.Toplevel() 
    top.overrideredirect(1) 
    btn = Tk.Button(top, text = 'Fermer', command = top.destroy) 
    btn.pack() 
  
btn = Tk.Button(root, text = 'Afficher message', command = affiche) 
btn.pack() 
  
root.mainloop()

Mis à jour le 18 janvier 2007 airod

Création d'une classe InfoBulle

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2014 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

 
 
 
 
Partenaires

PlanetHoster
Ikoula