web-dev-qa-db-fra.com

Mise en surbrillance des champs d’entrée Gtk lors d’une saisie invalide par l’utilisateur

Je crée un programme en utilisant Python et Gtk. Je veux guider l'utilisateur en signalant les erreurs éventuelles. J'ai joint un exemple d'interface Glade ci-dessous. Ici, l'utilisateur est supposé entrer un nom de station valide dans le champ GtkEntry. Je souhaite mettre ce champ en surbrillance en rouge (par exemple) s’il appuie sur le bouton Soumettre.

enter image description here

Comment y parvenir en GTK3 avec Python?

4
nik90

Premièrement, vous aurez besoin de la classe Color de Gdk et de la classe Gtk:

from gi.repository import Gtk
from gi.repository.Gdk import Color

Ensuite, dans votre gestionnaire, changez la couleur de premier plan du champ de texte:

COLOR_INVALID = Color(50000, 0, 0) // A dark red color
text_field.modify_fg(Gtk.StateFlags.NORMAL, COLOR_INVALID)

Si vous souhaitez rétablir la couleur par défaut lorsque le champ de texte est modifié, placez-le dans le gestionnaire de modification:

text_field.modify_fg(Gtk.StateFlags.NORMAL, None)

Les valeurs RBG pour la classe Color sont comprises entre 0 et 65535.

Pour plus d'informations, voir les classes documentation PyGTK , en particulier les classes Widget et Color .

3
iBelieve