Accès à un QTableWidget depuis plusieurs fonctions
Bonjour à tous,
J'ai une fenêtre créée avec Qt Designer (que j'appellerai MainWindowSpectro) qui comporte, entre autre, un bouton et un tableau. Lorsque je clique sur ce bouton j'ouvre une seconde fenêtre (elle aussi créée sous Qt Designer, que j'appellerai SaveDataSpectro) qui dispose d'un bouton Ok. Lorsque ce bouton Ok est cliqué j'aimerai entrer une valeur dans une cellule du tableau. Je pensais bêtement qu'en important le fichier MainWindowSpectro obtenus à partir du fichier .ui dans le fichier .py SaveDataSpectro j'aurais accès aux variables mais ce n'est pas le cas. Je n'arrive pas à trouver d'où peux venir mon problème, quelqu'un aurez une idée ?
Voici mon code dans deux fichier .py séparé. Le premier :
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
| #!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
#### GUI file made with Qt Designer and translated into python with uic5 ######
from Gui_python_files.mainwindowspectroGUI import Ui_MainWindowSpectro
###############################################################################
#### Function import ##########################################################
import savedata_spectro
class MainWindowSpectro(QMainWindow, Ui_MainWindowSpectro):
def __init__(self, *args, obj=None, **kwargs):
super(MainWindowSpectro, self).__init__(*args, **kwargs)
self.setupUi(self)
self.pushButtonAcquisition.clicked.connect(self.onPushButtonAcquisitionClicked)
self.tableWidgetShowExperiment = savedata_spectro.SaveDataSpectro(self)
def onPushButtonAcquisitionClicked(self):
self.SaveDataShow = savedata_spectro.SaveDataSpectro()
self.SaveDataShow.setWindowModality(QtCore.Qt.ApplicationModal)
self.SaveDataShow.show()
if __name__.endswith('__main__'):
if not QApplication.instance():
MainApp = QApplication(sys.argv)
else :
MainApp = QApplication.instance()
mainWindow = MainWindowSpectro()
mainWindow.show()
rc = MainApp.exec_()
sys.exit(rc)
##############################################################################
os.system("pause") |
et la seconde partie :
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
| #!/usr/bin/python3
# -*- coding: utf-8 -*-
from PyQt5.QtWidgets import QDialog, QTableWidgetItem
#### GUI file made with Qt Designer and translated into python with uic5 ######
from Gui_python_files.savedataspectroGUI import Ui_SaveDataSpectro
from Gui_python_files.mainwindowspectroGUI import Ui_MainWindowSpectro
###############################################################################
###### Function import ########################################################
class SaveDataSpectro(QDialog, Ui_SaveDataSpectro):
def __init__(self, *args, obj=None, **kwargs):
super(SaveDataSpectro, self).__init__(*args, **kwargs)
self.setupUi(self)
###### Connexion signaux-slot #################################################
self.pushButtonSaveDataOk.clicked.connect(self.onPushButtonSaveDataOkClicked)
def onPushButtonSaveDataOkClicked(self):
new_item = QTableWidgetItem('&')
self.tableWidgetShowExperiment.setItem(1, 1,new_item)
self.close() |
Merci d'avance pour votre aide !