FAQ Python
FAQ PythonConsultez toutes les FAQ
Nombre d'auteurs : 11, nombre de questions : 188, dernière mise à jour : 14 juin 2021
w.focus_set() donne le focus au widget w
Le module tkFont fournit une classe Font qui permet de définir les caractéristiques des fontes de n'importe quel widget avec les attributs suivants:
- family: 'courier', 'arial', ...
- size: integer
- slant: NORMAL ou ITALIC
- weight: NORMAL ou BOLD
- underline: True ou False
- overstrike: True ou False
La fonction font.config(**font_option) permet de configurer la fonte, les différents attributs étant optionnels.
import
tkFont
fonte =
tkFont.Font
(
root)
fonte.config
(
size=
18
, family=
'courier'
, slant=
tkFont.ITALIC, weight=
tkFont.BOLD, underline=
True
, overstrike=
True
)
label.config
(
font =
fonte)
La classe Tkinter PhotoImage reconnaît les images GIF et PPM. Le fait qu'elle soit utilisée comme option de configuration image d'un widget ne suffit pas à maintenir une instance PhotoImage en vie. Il faut donc s'assurer de conserver ces instances dans un objet conteneur de Python;
# -*- coding: cp1252 -*-
import
Tkinter as
Tk
def
imgaffiche
(
):
img =
Tk.PhotoImage
(
file =
imgfile) ## Création d'un objet PhotoImage qui reconnait les extensions .gif et .ppm
gifsdict[imgfile] =
img ## si on commente cette ligne, l'image ne s'affichera pas
button.configure
(
image=
img) ## Ajout de l'image sur le bouton
## On pourrait aussi directement faire
## gifsdict[imgfile] = Tk.PhotoImage(file = imgfile)
## button.configure(image = gifsdict[imgfile])
root =
Tk.Tk
(
)
button =
Tk.Button
(
text =
"affiche image"
, command =
imgaffiche)
imgfile =
strchemin ## strchemin:str, chemin d'accès à l'image
gifsdict=
{} ## Utilisation d'un dictionnaire pour conserver une référence sur la PhotoImage créée
button.pack
(
)
root.mainloop
(
)
Si vous voulez afficher une image autre que GIF ou PPM, il vous faudra passer par la bibliothèque PIL qui est capable de lire tout type d'images. Il faudra également conserver l'image dans un objet conteneur Python pour les mêmes raisons que précedemment.
from
PIL import
Image, ImageTk ## Importation des modules utiles dans PIL
import
Tkinter as
Tk
root =
Tk.Tk
(
)
monimage =
Image.open(
"lena.jpg"
) ## Chargement d'une image à partir de PIL
photo =
ImageTk.PhotoImage
(
monimage) ## Création d'une image compatible Tkinter
label =
Tk.Label
(
image=
photo) ## Insertion de l'image de l
label.image =
photo ## Maintient en vie de photo dans un objet non détruit par le garbage
## pour pas que l'image disparaisse du label
label.pack
(
)
root.mainloop
(
)
Pour modifier la couleur de fond d'un widget, il suffit d'appliquer la méthode w.config(bg = NewColor) ou w.config(background = NewColor) où NewColor est une chaîne représentant soit un nom de couleur (par exemple "red", "green", ...) soit directement une couleur avec ses composantes RVB en ayant la forme "#RRVVBB" où RR, VV, BB sont des valeur hexadécimales comprises entre 00 et FF
import
Tkinter as
Tk
root =
Tk.Tk
(
)
root.config (
bg =
"red"
)
label =
Tk.Label
(
root, text =
"test"
)
label.configure
(
background =
"#50A42D"
)
label.pack
(
)
root.mainloop
(
)