Bonjour,
je crée dynamiquement des QTextEdit et je souhaiterais récupérer le texte qu'ils contiennent (texte que l'utilisateur aura tapé). J'inciste sur le fait que les QTextEdit ont été rajoutés dynamiquement. Voir les deux codes suivants.
Code window_TestOnglets.py (définition en dur de l'application)
Code TestOnglets.py (voir la fonction nouvelOnglet pour la création dynamique des QTextEdit)Code:
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 from PyQt4 import QtCore, QtGui class Ui_window_TestOnglets(object): def setupUi(self, window_TestOnglets): window_TestOnglets.setObjectName("window_TestOnglets") window_TestOnglets.resize(QtCore.QSize(QtCore.QRect(0,0,467,606).size()).expandedTo(window_TestOnglets.minimumSizeHint())) window_TestOnglets.setMinimumSize(QtCore.QSize(467,571)) window_TestOnglets.setWindowIcon(QtGui.QIcon("im_1.png")) self.centralwidget = QtGui.QWidget(window_TestOnglets) self.centralwidget.setObjectName("centralwidget") self.tabWidget = QtGui.QTabWidget(self.centralwidget) self.tabWidget.setGeometry(QtCore.QRect(10,20,440,510)) self.tabWidget.setObjectName("tabWidget") self.onglet_1 = QtGui.QWidget() self.onglet_1.setObjectName("onglet_1") self.textEdit_1 = QtGui.QTextEdit(self.onglet_1) self.textEdit_1.setGeometry(QtCore.QRect(10,10,401,451)) self.textEdit_1.setObjectName("textEdit") self.tabWidget.addTab(self.onglet_1,"") window_TestOnglets.setCentralWidget(self.centralwidget) self.menubar = QtGui.QMenuBar(window_TestOnglets) self.menubar.setGeometry(QtCore.QRect(0,0,467,21)) self.menubar.setObjectName("menubar") self.menuTest = QtGui.QMenu(self.menubar) self.menuTest.setObjectName("menuTest") window_TestOnglets.setMenuBar(self.menubar) self.statusbar = QtGui.QStatusBar(window_TestOnglets) self.statusbar.setObjectName("statusbar") window_TestOnglets.setStatusBar(self.statusbar) self.actionOuvrir = QtGui.QAction(window_TestOnglets) self.actionOuvrir.setObjectName("actionOuvrir") self.menuTest.addAction(self.actionOuvrir) self.menubar.addAction(self.menuTest.menuAction()) self.retranslateUi(window_TestOnglets) self.tabWidget.setCurrentIndex(0) QtCore.QMetaObject.connectSlotsByName(window_TestOnglets) def retranslateUi(self, window_TestOnglets): window_TestOnglets.setWindowTitle(QtGui.QApplication.translate("window_TestOnglets", "window_TestOnglets", None, QtGui.QApplication.UnicodeUTF8)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.onglet_1), QtGui.QApplication.translate("window_TestOnglets", "Fichier", None, QtGui.QApplication.UnicodeUTF8)) self.menuTest.setTitle(QtGui.QApplication.translate("window_TestOnglets", "Test", None, QtGui.QApplication.UnicodeUTF8)) self.actionOuvrir.setText(QtGui.QApplication.translate("window_TestOnglets", "Ouvrir", None, QtGui.QApplication.UnicodeUTF8)) self.actionOuvrir.setShortcut(QtGui.QApplication.translate("window_TestOnglets", "Ctrl+O", None, QtGui.QApplication.UnicodeUTF8))
Code:
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 #!/usr/bin/env python # On importe les bibliothèques que nous allons utiliser. import sys from PyQt4 import QtCore, QtGui # On importe notre application et les boîtes de dialogue. from window_TestOnglets import Ui_window_TestOnglets # # # # # # # # # # # # # # # # # # # # # # # # # Comportement de la boîte de dialogue. DEBUT class window_TestOnglets(QtGui.QMainWindow, Ui_window_TestOnglets): def __init__(self): QtGui.QMainWindow.__init__(self) Ui_window_TestOnglets.__init__(self) self.setupUi(self) # Connection du menu. self.connect(self.actionOuvrir, QtCore.SIGNAL("triggered()"),self.Ouvrir) # Les variables self.nbreFichier = 0 # Nbre de fichiers ouverts self.tabloFichier = [] # Tableau contenant les chemins complets des fichiers ouverts (afin de ne pas ouvrir deux fois le même fichier) # Ouverture d'un fichier def Ouvrir(self) : self.cheminFichier = QtGui.QFileDialog.getOpenFileName(self, self.tr("Choisir le fichier"),QtCore.QDir.currentPath(),""); if self.cheminFichier <> '': # Cas du tout premier onglet. if self.nbreFichier == 0 : self.nbreFichier += 1 self.textEdit_1.setText(self.cheminFichier) self.tabWidget.setTabText(self.tabWidget.indexOf(self.onglet_1), QtGui.QApplication.translate("window_TestOnglets", "Fichier n°1", None, QtGui.QApplication.UnicodeUTF8)) else : self.nbreFichier += 1 self.nouvelOnglet(u"Fichier n°"+str(self.nbreFichier),self.cheminFichier) # Création d'un nouvel onglet pour recevoir un nouveau fichier def nouvelOnglet(self,titreTab,cheminDuFichier): self.tab = QtGui.QWidget() self.tab.setObjectName("onglet_"+str(self.nbreFichier)) self.textEdit = QtGui.QTextEdit(self.tab) self.textEdit.setGeometry(QtCore.QRect(10,10,401,451)) self.textEdit.setObjectName("textFichier_"+str(self.nbreFichier)) self.textEdit.setText(cheminDuFichier) self.tabWidget.insertTab(0,self.tab,titreTab) self.tabWidget.setCurrentIndex(0) # Comportement de la boîte de dialogue. FIN # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Lancement de l'application. if __name__ == "__main__": app = QtGui.QApplication(sys.argv) TestOnglets = window_TestOnglets() TestOnglets.show() sys.exit(app.exec_())