Probable évidence dans un "slot" : erreur pas de "self"
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 :
Code:
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$ |
... question de définition de classe et d'instance ?
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:
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) |