J'ai le code suivantComment définir correctement le parent d'un widget dans Pyqt?
from PyQt5 import QtCore, QtGui, QtWidgets
from mw import Ui_MainWindow as mwin
from wd import Ui_Form as wdg
class widget(QtWidgets.QWidget):
def __init__(self,parent = None):
super(widget,self).__init__(parent)
self.ui = wdg()
self.ui.setupUi(self)
self.show()
class Main(QtWidgets.QMainWindow):
def __init__(self,parent = None):
super(Main,self).__init__(parent)
self.ui = mwin()
self.ui.setupUi(self)
self.show()
w = widget(self)
import sys
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
mn = Main()
sys.exit(app.exec_())
Le Ui est généré par le designer qt et est importé d'un autre fichier.
Lorsque j'exécute le code, la fenêtre principale et le widget sont fusionnés et une erreur de segmentation se produit lorsque je ferme la fenêtre principale.
Lorsque j'ai défini le parent dans le widget sur Aucun, le problème disparaît mais le widget n'a pas de parent.
Je suis incapable de comprendre ce qui ne va pas et comment définir correctement la fenêtre principale en tant que parent du widget?
Vous ne devriez pas utiliser show() dans le constructeur de la classe. Supprimez-les et appelez mn.show() avant de commencer votre QApplication. –
Pouvez-vous également ajouter du code mwin et wdg? –