Gestion de fenêtre pop-up
Bonjour à tous,
Je cherche à faire une fenêtre principale qui lorsque je clique sur un bouton, déclencherais l'ouverture d'une autre fenêtre dans laquelle je pourrais récupérer les valeurs écrites dans des QTextEdit. Je vous mets ci-dessous le code que j'utilise pour le moment.
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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| from PyQt5.QtWidgets import QMainWindow, QWidget, QApplication, QFileDialog, QTextEdit, QTableWidgetItem, QDialog
from PyQt5 import uic, QtGui, QtCore
import pickle
### Import du module pour l'affichage des graphs ##############################
import pyqtgraph as pg
class MainWindowOPO(QMainWindow):
def __init__(self, parent = None):
### Portion du code qui permet de convertir l'interface .ui de QtDesigner en .py
super().__init__()
uic.loadUi(__file__.split('.py')[0] + '.ui', self)
################################################################################
self.pushButtonPivotal.clicked.connect(self.onPushButtonPivotal)
###################################################################################
def onPushButtonPivotal(self): ### Procedure pour pivoter une courbe entre deux points (regression lineaire pour avoir les deux points a zero)
self.pivotalWindow = PopUpPivotal()
self.pivotalWindow.setWindowModality(QtCore.Qt.ApplicationModal)
self.pivotalWindow.show()
###################################################################################################
class PopUpPivotal(QDialog):
def __init__(self, parent = None):
super().__init__()
uic.loadUi(__file__.split('.py')[0] + '.ui', self)
self.pushButtonPivotal.clicked.connect(self.onPushButtonPivotal)
def onPushButtonPivotal(self):
with open(self.loaded_filename,'rb') as file:
data = pickle.load(file)
print(data)
self.close()
#############################################################################################
### Code minimal pour afficher l'interface graphique
if __name__.endswith('__main__'):
if not QApplication.instance():
MainApp = QApplication(sys.argv)
else :
MainApp = QApplication.instance()
mainWindow = MainWindowOPO()
mainWindow.show()
rc = MainApp.exec_()
sys.exit(rc)
################################## |
En executant ce code , ca ne marche pas et j 'ai le message d'erreur suivant :
Citation:
TypeError: ('Wrong base class of toplevel widget', (<class '__main__.PopUpPivotal'>, 'QMainWindow')).
J'ai essayé de changer le type de PopUpPivotal en mettant QWidget ou QMainWindow mais j'ai toujours ce message d'erreur et je n'arrive pas à comprendre d'où vient mon erreur. Quelqu'un aurait une idée pour m'aiguiller ?
Merci d'avance pour votre aide !