# PyQt/QLineEdit
## Description

QLineEdit est un widget représentant une zone d'édition de texte sur une seule ligne. Il permet à l'utilisateur de saisir et modifier du texte avec des fonctions d'édition utiles telles que la possibilité d'annuler et refaire une action, la gestion du copier-coller et du glisser-déposer, ainsi qu'une multitude de raccourcis clavier facilitant l'édition de texte.
Il est possible de transformer la zone de saisie de texte en zone lecture seule grâce à la méthode setReadOnly ou bien de modifier la manière dont le texte introduit est affiché par un appel à la méthode echoMode (par exemple ne rien afficher si on demande un mot de passe à l'utilisateur). Ce widget gère aussi les contraintes sur le texte entré, comme par exemple une longueur maximale (méthode maxLength), ou des contraintes plus générales comme la validation. Elle est mise en place par l'intermédiaire de la méthode setValidator) (prenant en paramètre un objet de la classe QValidator) ou par l'utilisation d'un masque de saisie avec la méthode setInputMask. Le texte peut être modifié grâce aux méthodes setText ou insert, tandis qu'il peut être récupéré par la méthode text. Le texte affiché, qui peut être différent du texte entré en fonction du mode d'écho, est quant à lui récupéré grâce à displayText. Vous pouvez effectuer des sélections sur le contenu avec les méthodes setSelection et selectAll, sur lesquelles il est possible d'appliquer les traditionnels couper/copier/coller avec cut, copy et paste. Le texte peut être aligné avec la méthode setAlignment.
Lorsque le texte est modifié par l'utilisateur, le signal textChanged est émis. Lorsqu'il appuie sur la touche Entrée, c'est returnPressed qui est émis. Cependant, si une validation du texte est active le signal est émis uniquement si le texte est valide.
Comme expliqué ci-dessus il y a une multitude de raccourcis clavier disponibles sur cette zone de texte. Pour en obtenir la liste, ainsi que tous les détails concernant ce widget, consultez la documentation de référence à l'adresse http://doc.trolltech.com/3.3/qlineedit.html. Un widget relatif à cette zone de saisie est QTextEdit, qui fournit une zone de saisie de texte sur plusieurs lignes et avec des possibilités de mise en page plus importantes. Consultez la section suivante pour obtenir plus d'informations à son sujet.

## Exemple

* PyQt3.*
* #!/usr/bin/python
* # -*- coding : utf-8 -*-
* # qlineedit.py
* # Programme exemple pour la classe QLineEdit
* from qt import *
* import sys
* class Demo(QApplication) :
* def init (self,args) :
* QApplication. init (self, args)
* # widget principal, il s'agit d'une fenêtre de dialogue
* self.dialog = QDialog(None, "Dialog")
* # Grille de 2 lignes pour l'affichage
* self.grid = QGrid(2, Qt.Vertical, self.dialog)
* self.grid.setMinimumWidth(400)
* self.grid.setMinimumHeight(100)
* # première zone de saisie de texte
* self.line1 = QLineEdit(self.grid, "line1")
* self.line1.setMinimumWidth(400)
* self.line1.setMaxLength(50)
* self.line1.setText("Entrez votre texte ici")
* # seconde zone, en lecture seule
* self.line2 = QLineEdit(self.grid, "line2")
* self.line2.setReadOnly(True)
* self.line2.setAlignment(Qt.AlignHCenter)
* # le texte entré dans la première zone est copié dans la seconde
* self.connect(self,SIGNAL("lastWindowClosed"),self,SLOT("quit"))
* self.connect(self.line1,SIGNAL("textChanged(const QString&)"),
* self.line2,SLOT("setText(const QString &)"))
* self.dialog.show
* self.exec loop
* if name == "__main__" :
* x = Demo(sys.argv)
* PyQt4.*
* #!/usr/bin/python
* # -*- coding : utf-8 -*-
* # qlineedit.py
* # Programme exemple pour la classe QLineEdit
* from PyQt4.QtGui import *
* from PyQt4.QtCore import *
* import sys
* class Demo(QApplication) :
* def __init__(self, args) :
* QApplication.__init__(self,args)
* # widget principal, il s'agit d'une fenêtre de dialogue
* self.dialog = QDialog
* self.dialog.setWindowTitle("Dialog")
* self.grid = QGridLayout(self.dialog)
* self.grid.setColumnMinimumWidth(400, 400)
* self.grid.setRowMinimumHeight(100, 100)
* # première zone de saisie de texte
* self.line1 = QLineEdit("line1")
* self.line1.setMaxLength(50)
* self.line1.setText("Entrez votre texte ici")
* # seconde zone, en lecture seule
* self.line2 = QLineEdit("line2")
* self.line2.setReadOnly(True)
* self.line2.setAlignment(Qt.AlignHCenter)
* self.grid.addWidget(self.line1)
* self.grid.addWidget(self.line2)
* self.dialog.setLayout(self.grid)
* self.dialog.show
* self.connect(self,SIGNAL("lastWindowClosed"),self,SLOT("quit"))
* self.exec_
* if __name__ == "__main__" :
* app=Demo(sys.argv)