Bonjour,
Question de slot/signal ... ou pas, car, comme le montre la ligne à la console:
"Dans le slot : Pack de données archivé 10000"
je suis bien "dans le slot" quand apparait l'erreur;
notez que la ligne 15, dans le __init__ de la classe (... statusbar.showMessage ...) s'exécute bien;
mais la ligne 27, analogue, provoque l'erreur :
... question de définition de classe et d'instance ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 cs@cs-Vaio:~/Documents/Ateliers/Atl-Log/AptBureau$ python AptBureau.py {'Header': ['latitude', 'longitude', 'long', 'larg'], 'BP1': [42, 2, 100, 5], 'BP2': [42.5, 2, 80, 2.5], 'HF1': [42, 1.9, 100, 1.5], 'HF2': [42, 2.1, 100, 1.5]} Dans le slot : Pack de données archivé 10000 Traceback (most recent call last): File "/home/cs/Documents/Ateliers/Atl-Log/AptBureau/AptBureauUI.py", line 27, in slotStatusBar self.statusbar.showMessage(texte, tempo) NameError: name 'self' is not defined Pack de données archivé cs@cs-Vaio:~/Documents/Ateliers/Atl-Log/AptBureau$
Désolé si c'est en fait évident, je suis assez "neuf" en Python ... et sur PSyde2 ...
(mais j'ai cherché plus de 10mn ... -6h- ;-) )
j'ai essayé "def slotStatusBar(self, texte, tempo):" à tout hazard ... qui donne:
"TypeError: slotStatusBar() missing 1 required positional argument: 'tempo'
Mon contexte : Ubuntu 18.04 LTS, Pyside2, Qt5, Python 3.6.8
Le code:
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
31 # Classes de base du UI de AptBureau # Début: 23 nov 2019 from PySide2 import Qt, QtCore, QtWidgets, QtGui import mainwindow import Archive class AptBureauWin(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow): def __init__(self, parent=None): super(AptBureauWin, self).__init__(parent) self.setupUi(self) # self.setWindowTitle("Apt Bureau") # dans le constructeur de Ui_MainWindow self.statusbar.showMessage("Ouverture", 10000) self.setWindowIcon(QtGui.QIcon('AptVerger.svg')) self.actionEnregistrer.triggered.connect(Archive.ArchiveDonnees) self.actionOpen.triggered.connect(Archive.ChargeDonnees) TableBandes= BandesModel(Archive.Bandes, self) self.tableView.setModel(TableBandes) @QtCore.Slot(str, int) def slotStatusBar(texte,tempo): print("Dans le slot : ", texte, tempo) self.statusbar.showMessage(texte, tempo) def EditeBandes(): TableBandes= BandesModel(Archive.Bandes, self) self.tableView.setModel(TableBandes)
Partager