1. Description du widget QTextEdit
Le widget QTextEdit dans PyQt5 est un élément graphique polyvalent et puissant qui offre une interface utilisateur interactive pour la saisie et la manipulation de texte multi-ligne. Il permet aux développeurs de créer des applications qui nécessitent une zone de texte riche en fonctionnalités et facile à utiliser.
Avec QTextEdit, les utilisateurs peuvent exprimer leurs idées, rédiger des notes, créer des documents et bien plus encore. Ce widget offre une interface de texte fluide et réactive qui permet une édition et une mise en forme aisées. Il prend en charge les fonctionnalités essentielles telles que la sélection, le copier-coller, le déplacement du curseur et l'insertion de texte à différents endroits.
2. Les caractéristiques du widget QTextEdit
Le widget QTextEdit est doté de nombreuses propriétés et caractéristiques qui font du lui un composant puissant pour la manipulation de texte multi-ligne dans les applications PyQt5, que ce soit pour la création de documents, l'édition de code, la rédaction de notes, etc.
Voici quelques caractéristiques clés du widget QTextEdit :
- Édition de texte : QTextEdit permet à l'utilisateur de saisir et de modifier du texte sur plusieurs lignes. Il prend en charge des opérations basiques de copier, couper et coller.
- Formatage de texte : QTextEdit fournit des options de formatage pour mettre en évidence certaines parties du texte. Il est possible d'appliquer différentes polices, tailles, styles, couleurs et effets de texte (souligné, barré, etc.). On peut également aligner le texte à gauche, à droite, au centre ou justifier le texte.
- Gestion de styles : QTextEdit permet d'appliquer des styles CSS au texte, ce qui offre une flexibilité supplémentaire pour personnaliser l'apparence du texte.
- Images et liens : On peut insérer des images et des liens hypertexte dans le texte affiché dans QTextEdit. Cela permet d'enrichir le contenu avec des éléments visuels ou de créer des liens vers d'autres ressources.
- Undo/Redo : QTextEdit prend en charge les opérations d'annulation (undo) et de rétablissement (redo) pour permettre à l'utilisateur de revenir en arrière ou de rétablir les modifications apportées au texte.
- Recherche et remplacement : QTextEdit permet de rechercher et de remplacer du texte dans le contenu affiché, ce qui facilite la manipulation de grandes quantités de texte.
- Enregistrement et chargement de fichiers : On peut enregistrer le contenu de QTextEdit dans un fichier ou charger un fichier existant pour l'afficher et le modifier.
3. Syntaxe & Usage du widget QTextEdit
Pour créer un objet QTextEdit, il suffit d'importer la classe QTextEdit() et faire une instanciation:
1 |
text_edit = QTextEdit() |
3.1 Création d'un widget QTextEdit simple
La syntaxe pour créer un widget QTextEdit dans PyQt5 sera donc de la façon suivante :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
from PyQt5.QtWidgets import QApplication, QWidget, QTextEdit # Création de l'application Qt app = QApplication([]) # Création de la fenêtre principale window = QWidget() window.setGeometry(100, 100, 500, 300) # Création du widget QTextEdit sur la fenêtre window text_edit = QTextEdit(window) text_edit.setGeometry(50, 50, 350, 200) # Ajouter un text au widget QTextEdit text_edit.setText('Hello from QTextEdit ! ') # Affichage de la fenêtre window.show() # Exécution de la boucle d'événements Qt app.exec() |
3.2 Création d'un QTextEdit selon l'approche objet
Voici un exemple d'utilisation de QTextEdit sur une fenêtre QWidget en utilisant l'approche orientée objet dans PyQt5 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
from PyQt5.QtWidgets import QApplication, QWidget, QTextEdit, QVBoxLayout class MyWindow(QWidget): def __init__(self): super().__init__() self.init_ui() def init_ui(self): # Création du widget QTextEdit text_edit = QTextEdit() # Création du layout vertical layout = QVBoxLayout() layout.addWidget(text_edit) # Définition du layout pour la fenêtre self.setLayout(layout) # Définition des propriétés de la fenêtre self.setWindowTitle("Exemple QTextEdit sur QWidget") self.setGeometry(300, 300, 400, 300) if __name__ == "__main__": app = QApplication([]) window = MyWindow() window.show() app.exec() |
4. Les différentes manipulation d'un QTextEdit
Une fois le widget QTextEdit créé, vous pouvez l'utiliser pour afficher, insérer éditer, supprimer du texte etc. Nous allons fournir dans ce paragraphe des exemples qui illustrent quelques fonctionnalités de base du widget QTextEdit. Vous pouvez explorer davantage la documentation de PyQt5 pour découvrir d'autres méthodes et signaux disponibles pour travailler avec QTextEdit et exploiter pleinement ses capacités d'édition de texte. Voici quelques exemples d'utilisation courants :
4.1 Définir le contenu initial du QTextEdit
1 |
text_edit.setText("Contenu initial du QTextEdit") |
4.2 Obtenir le contenu actuel du QTextEdit
1 |
content = text_edit.toPlainText() |
4.3 Définir le format du texte dans QTextEdit
1 2 3 |
text_edit.setFontFamily("Arial") text_edit.setFontPointSize(12) text_edit.setFontWeight(QFont.Bold) |
4.4 Insérer du texte à une position donnée
1 |
text_edit.insertPlainText("Nouveau texte inséré") |
4.5 Appliquer des styles de mise en forme au texte
1 |
text_edit.setStyleSheet("color: red; font-weight: bold;") |
4.6 Gérer les événements de modification du texte
1 2 3 4 |
def text_changed(): print("Le contenu du QTextEdit a été modifié") text_edit.textChanged.connect(text_changed) |
4.7 Enregistrer le contenu du QTextEdit dans un fichier
1 2 3 |
file_path = "chemin/vers/fichier.txt" with open(file_path, "w") as file: file.write(text_edit.toPlainText()) |
4.8 Charger un fichier dans QTextEdit
1 2 3 4 |
file_path = "chemin/vers/fichier.txt" with open(file_path, "r") as file: content = file.read() text_edit.setText(content) |
5. Liste des méthodes associées au widget QTextEdit
Le widget QTextEdit, offre de nombreuses méthodes permettant d'améliorer la manipulation du texte d'une façon performante et éfficace! Ces méthodes offrent un contrôle complet sur la manipulation du texte dans QTextEdit. Il existe également d'autres méthodes disponibles pour la gestion des images, des liens hypertexte, la mise en forme avancée du texte, etc. Vous pouvez consulter la documentation de PyQt5 pour une liste exhaustive des méthodes disponibles pour QTextEdit.
Voici quelques-unes des méthodes les plus couramment utilisées associées au widget QTextEdit dans PyQt5 :
- setText(text): Définit le contenu textuel du QTextEdit.
- toPlainText(): Récupère le contenu textuel actuel du QTextEdit.
- setFont(font): Définit la police de caractères utilisée pour le texte dans QTextEdit.
- setFontPointSize(size): Définit la taille de la police de caractères utilisée pour le texte.
- setFontItalic(italic): Définit si le texte doit être en italique (True) ou non (False).
- setFontWeight(weight): Définit l'épaisseur de la police (p.ex., QFont.Bold).
- setTextColor(color): Définit la couleur du texte dans QTextEdit.
- setAlignment(alignment): Définit l'alignement du texte (p.ex., Qt.AlignCenter).
- insertPlainText(text): Insère le texte à la position actuelle du curseur.
- append(text): Ajoute le texte à la fin du contenu existant dans QTextEdit.
- setReadOnly(readonly): Définit si le QTextEdit est en mode lecture seule (True) ou éditable (False).
- clear(): Efface tout le contenu de QTextEdit.
- undo(): Annule la dernière action effectuée dans QTextEdit.
- redo(): Rétablit la dernière action annulée dans QTextEdit.
- copy(): Copie le texte sélectionné dans QTextEdit dans le presse-papiers.
- cut(): Coupe le texte sélectionné dans QTextEdit et le place dans le presse-papiers.
- paste(): Colle le contenu du presse-papiers à la position actuelle du curseur dans QTextEdit.
- find(text, options): Recherche le texte spécifié dans QTextEdit en utilisant les options de recherche spécifiées.
- setPlaceholderText(text): Définit le texte d'invite à afficher lorsqu'il n'y a pas de contenu dans QTextEdit.
- zoomIn(factor): Effectue un zoom avant sur le contenu de QTextEdit en fonction du facteur spécifié.
- zoomOut(factor): Effectue un zoom arrière sur le contenu de QTextEdit en fonction du facteur spécifié.
Younes Derfoufi
CRMEF OUJDA