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.
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
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()
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
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
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)
Lors de l'exécution, j'ai ce message qui s'affiche builtins.AttributeError: 'DialogModifAgent' object has no attribute 'mapperagent'
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()
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.
Partager