Le contrôle de saisie QLineEdit PyQt5 en Python

qlineedit-pyqt5-widget

 

1. Description du contrôle QLineEdit PyQt5

Le widget de contrôle QLineEdit de PyQt5 offre à l'utilisateur une interface pratique pour saisir et modifier du texte dans divers contextes. Sa polyvalence en fait un choix adapté à diverses applications, allant de la saisie de noms d'utilisateur et de mots de passe à la création de requêtes de recherche.

Ce widget est capable de gérer différents types d'entrées utilisateur, y compris du texte brut, des nombres, des dates et des heures. De plus, il offre des fonctionnalités avancées telles que l'affichage de texte masqué pour des champs comme les mots de passe, ainsi que la possibilité de limiter la longueur du texte saisi.

Au-delà des fonctionnalités basiques de saisie et d'édition de texte, le widget QLineEdit propose une variété d'autres capacités telles que la sélection et la suppression de texte, la recherche de texte, le déplacement du curseur, la correction automatique, un historique de saisie, et bien plus encore.

Pour personnaliser son apparence, le contrôle QLineEdit peut être stylisé à l'aide de feuilles de style CSS, permettant ainsi son intégration harmonieuse avec le reste de l'interface utilisateur de l'application. Il peut également être étendu pour inclure des fonctionnalités spécifiques, comme la validation des entrées textuelles ou la suggestion automatique de texte.

En résumé, le contrôle QLineEdit de PyQt5 est un composant d'interface utilisateur fondamental et adaptable, capable de répondre à un large éventail d'exigences pour la saisie et l'édition de texte. Sa flexibilité et ses fonctionnalités étendues en font un choix populaire parmi les développeurs d'applications PyQt5.

2. Création d'un contrôle QLineEdit

Pour créer un contrôle QLineEdit, on doit importer et faire une instanciation sur la classe QLineEdit:

Ce qui affiche à la sortie:

3. Appliquer un style QSS (Qt Style Sheet) à un champ QLineEdit

La classe QLineEdit est dotée de la méthode setStyleSheet() qui permet d'associer un style Qt Style Sheet (QSS)

Exemple

QLineEdit-PyQt5-stylesheet-qss




4. QLineEdit selon l'approche objet

La construction d'un widget QLineEdit selon l'approche orientée objet en PyQt5 implique plusieurs étapes. Voici une description détaillée de la construction de QLineEdit dans un contexte orienté objet :

  1. Importation des modules nécessaires : Importez le module QApplication pour initialiser l'application PyQt5 et aussi les classes QWidget et QLineEdit pour créer la fenêtre et le widget QLineEdit.
  2. Création d'une classe pour la fenêtre principale : Définissez une classe, par exemple MyWindow, qui hérite de la classe QWidget.
  3. Méthode d'initialisation de l'interface utilisateur (initUI) : À l'intérieur de cette méthode, créez une instance de QLineEdit.
  4. Configurer les propriétés du widget QLineEdit : Vous pouvez définir différentes propriétés du widget, telles que sa géométrie, le texte initial, etc.
  5. Afficher la fenêtre principale : Dans le bloc principal (__name__ == '__main__'), initialisez l'application PyQt, créez une instance de la classe MyWindow, affichez la fenêtre, et lancez l'application.

5. Manipulation d'un contrôle QLineEdit

Dans cette section, nous explorerons la manipulation du widget QLineEdit : comment insérer du texte, récupérer le contenu du widget, etc. À titre illustratif, nous élaborerons une application simple qui sollicite l'utilisateur pour saisir son nom. En réponse, l'application lui présentera un message de bienvenue accompagné de son nom, comme illustré dans la figure ci-dessous :

Code de l'application

Code de l'application selon l'approche objet

6. Liste des principales méthodes associées au contrôle QLineEdit

Voici une compilation de certaines des méthodes clés liées au widget QLineEdit, sans prétendre à l'exhaustivité :

  1. alignment() : Récupère l'alignement actuel du texte dans le champ QLineEdit.
  2. backspace() : Supprime le caractère précédent du curseur dans le champ QLineEdit.
  3. clear() : Efface le contenu du champ QLineEdit.
  4. copy() : Copie le texte sélectionné dans le champ QLineEdit.
  5. cursorBackward(bool mark, int steps=1) : Déplace le curseur de texte en arrière d'un certain nombre de caractères.
  6. cursorForward(bool mark, int steps=1) : Déplace le curseur de texte en avant d'un certain nombre de caractères.
  7. cursorPosition() : Récupère la position actuelle du curseur dans le champ QLineEdit.
  8. cut() : Coupe le texte sélectionné dans le champ QLineEdit.
  9. del_() : Supprime le caractère suivant du curseur dans le champ QLineEdit.
  10. deselect() : Annule la sélection de texte dans le champ QLineEdit.
  11. displayText() : Récupère le texte affiché dans le champ QLineEdit après toute modification de police ou de mise en page.
  12. echoMode() : Récupère le mode d'affichage du texte entré dans le champ QLineEdit.
  13. hasSelectedText() : Renvoie True si une partie du texte est sélectionnée dans le champ QLineEdit, sinon False.
  14. home(bool mark) : Déplace le curseur de texte au début du champ QLineEdit.
  15. inputMask() : Récupère le masque d'entrée actuellement défini dans le champ QLineEdit.
  16. insert(QString) : Insère le texte spécifié à la position actuelle du curseur dans le champ QLineEdit.
  17. isReadOnly() : Renvoie True si le champ QLineEdit est en lecture seule, sinon False.
  18. maxLength() : Récupère le nombre maximal de caractères pouvant être entrés dans le champ QLineEdit.
  19. paste() : Colle le texte du presse-papiers dans le champ QLineEdit.
  20. selectAll() : Sélectionne tout le texte dans le champ QLineEdit.
  21. selectedText() : Récupère le texte actuellement sélectionné dans le champ QLineEdit.
  22. selectionStart() : Récupère la position de début de la sélection de texte actuelle dans le champ QLineEdit.
  23. setAlignment(Qt.Alignment) : Définit l'alignement du texte dans le champ QLineEdit.
  24. setClearButtonEnabled(bool) : Active ou désactive le bouton de suppression de texte dans le champ QLineEdit.
  25. setCursorMoveStyle(Qt.CursorMoveStyle) : Définit le style de déplacement du curseur de texte dans le champ QLineEdit.
  26. setCursorPosition(int) : Définit la position du curseur de texte dans le champ QLineEdit.
  27. setDragEnabled(bool) : Active ou désactive la possibilité de faire glisser le texte dans le champ QLineEdit.
  28. setEchoMode(QLineEdit.EchoMode) : Définit le mode d'affichage du texte entré dans le champ QLineEdit.
  29. setFrame(bool) : Active ou désactive le cadre entourant le champ QLineEdit.
  30. setInputMask(QString) : Définit un masque d'entrée pour le champ QLineEdit.
  31. setMaxLength(int) : Définit le nombre maximal de caractères pouvant être entrés dans le champ QLineEdit.
  32. setPlaceholderText(QString) : Définit un texte d'invite à afficher dans le champ QLineEdit lorsque celui-ci est vide.
  33. setReadOnly(bool) : Définit si le champ QLineEdit est en lecture seule ou non.
  34. setSelection(int, int) : Définit une sélection de texte dans le champ QLineEdit en spécifiant la position de début et la longueur de la sélection.
  35. setText(QString) : Définit le texte affiché dans le champ QLineEdit.
  36. setTextMargins(int left, int top, int right, int bottom) : Définit les marges de texte pour le champ de texte QLineEdit.
  37. setValidator(QValidator) : Définit un validateur pour le champ QLineEdit.
  38. text() : Récupère le texte entré dans le champ QLineEdit.
  39. textMargins() : Récupère les marges de texte actuellement définies pour le champ QLineEdit.
  40. undo() : Annule la dernière opération de modification de texte dans le champ QLineEdit.
  41. validator() : Récupère le validateur actuellement défini pour le champ QLineEdit.

7. Quiz

Exercice 1
Quelle méthode permet de récupérer le texte entré dans un QLineEdit ?

a) get()
b) text()
c) retrieveText()
d) currentText()

Exercice 2
Comment effacer le contenu d'un QLineEdit en utilisant une méthode ?

a) clearText()
b) empty()
c) erase()
d) clear()

Exercice 3
Quelle méthode permet de définir un texte d'invite à afficher dans un QLineEdit lorsque celui-ci est vide ?

a) setPlaceholderText()
b) setEmptyText()
c) setHintText()
d) setPromptText()

Exercice 4
Comment définir un nombre maximal de caractères pouvant être entrés dans un QLineEdit ?

a) setMaxCharacters()
b) setMaxLength()
c) limitCharacters()
d) restrictLength()

Exercice 5
Quelle méthode permet de sélectionner tout le texte dans un QLineEdit ?

a) selectAllText()
b) markAll()
c) selectText()
d) selectAll()

Exercice 6
Comment définir un validateur pour un QLineEdit ?

a) setValidator()
b) validateInput()
c) assignValidator()
d) validateField()

Exercice 7
Quelle méthode permet de couper le texte sélectionné dans un QLineEdit ?

a) remove()
b) cut()
c) deleteSelected()
d) detachText()

Exercice 8
Comment définir le mode d'affichage du texte entré dans un QLineEdit pour qu'il soit masqué ?

a) setHiddenTextMode()
b) setMaskedText()
c) setEchoMode()
d) setSecureTextMode()

Exercice 9
Quelle méthode permet de définir les marges de texte pour un QLineEdit ?

a) setTextMargins()
b) setMargins()
c) setPadding()
d) adjustMargins()

Exercice 10
Comment récupérer la position actuelle du curseur de texte dans un QLineEdit ?

a) getCursorPosition()
b) cursorPos()
c) cursorPosition()
d) currentCursor()

  1. Exercice 1 : b) text()
  2. Exercice 2 : d) clear()
  3. Exercice 3 : a) setPlaceholderText()
  4. Exercice 4 : b) setMaxLength()
  5. Exercice 5 : d) selectAll()
  6. Exercice 6 : a) setValidator()
  7. Exercice 7 : b) cut()
  8. Exercice 8 : c) setEchoMode()
  9. Exercice 9 : a) setTextMargins()
  10. Exercice10 : c) cursorPosition()

 

Younes Derfoufi
CRMEF OUJDA

Leave a Reply