Bonjour les amis,

C'est toujours moi avec mes questions pertinentes, cette fois c'est le message d'erreur dont, je connais la signification mais, malheureusement, j'ai pas pu le résoudre.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
 
#!/usr/bin/python3
# -*- coding: utf-8 -*-
 
import sys
import os
from PyQt5 import QtCore
from PyQt5 import QtWidgets
from PyQt5.QtCore import Qt, QModelIndex
from PyQt5.QtSql import (QSqlTableModel,QSqlDatabase, QSqlQuery,
                            QSqlRelationalTableModel,
                            QSqlRelation,QSqlRelationalDelegate)
from PyQt5.QtWidgets import (QApplication, QTableView, QDataWidgetMapper,
                             QComboBox, QDialog, QPushButton, QFormLayout,
                             QLabel, QStackedLayout, QMainWindow, QMessageBox, QAbstractItemView)
 
 
from SiF_ui import Ui_MenuSiF
from Nouvelagent_ui import Ui_NouvelAgentDialog
from Modifagent_ui  import Ui_ModifAgentDialog
from Config_ui import Ui_DialogConfig
from Formation_ui import Ui_DialogFormation
 
class Fenetre(QMainWindow):
    def __init__(self, parent=None):
        super(Fenetre, self).__init__(parent)
        self.ui = Ui_MenuSiF()
        self.ui.setupUi(self)
        self.ouvrecnx()
J'affiche la la class Fenetre une QTableView

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
        self.modellisteemloyes = QSqlRelationalTableModel(self)
        self.modellisteemloyes.setTable("Agents")
        self.modellisteemloyes.setEditStrategy(QSqlRelationalTableModel.OnManualSubmit)
        self.modellisteemloyes.select()
        self.modellisteemloyes.setSort(0, Qt.AscendingOrder)
        self.ui.tableViewEmployes.setSortingEnabled(True)
        self.ui.tableViewEmployes.resizeColumnsToContents()
        self.ui.tableViewEmployes.setModel(self.modellisteemloyes)
 
        self.mapperagent = QDataWidgetMapper(self)
        self.mapperagent.setSubmitPolicy(QDataWidgetMapper.ManualSubmit)
        self.mapperagent.setModel(self.modellisteemloyes)
        self.mapperagent.setItemDelegate(QSqlRelationalDelegate(self))
        self.ui.tableViewEmployes.selectionModel().currentRowChanged.connect(self.mapperagent.setCurrentModelIndex) # affiche les données dans les LineEdit
On sélectionnant un enregistrement, j'ouvre une une QDialog pour afficher les données dans des LineEdit

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
 
 def Ouvrir_Dialog_Modif_Agent(self):
        if self.ui.tableViewEmployes.currentIndex().row() > -1:
            self.Dialog_Modif_Agent = DialogModifAgent()
            self.Dialog_Modif_Agent.show()
            self.Dialog_Modif_Agent.exec_()
        else:
             QMessageBox.question(self, "Message", "Veuillez sélectionnez l'enregistrement à vouloir modifier", QMessageBox.Ok)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
 
class DialogModifAgent(QDialog):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.ui = Ui_ModifAgentDialog()
        self.ui.setupUi(self)
        self.mapperagent.addMapping(self.ui.lematriculemodif, 0)
        self.mapperagent.addMapping(self.ui.lenommodif, 1)
        self.mapperagent.addMapping(self.ui.leprenomsmodif, 2)
        self.mapperagent.toFirst()
Lors de l'exécution, j'ai ce message qui s'affiche builtins.AttributeError: 'DialogModifAgent' object has no attribute 'mapperagent'
Je sais que "mapperagent" est déclaré dans la class Fenetre et n'existe pas dans class DialogModifAgent malgré l'import au début de toutes les formes.
La question est comment hériter les attributs entre classes.

Merci.