Bonjour à tous,

J'ai pour projet de créer une IHM interactive.
Débutant sur Python et PyQt je me permet de solliciter votre aide.
C'est surement quelque chose de très simple mais je n'arrive vraiment pas à comprendre ou ca peut bloquer, que faire meme.

J'ai crée 2 fenetres sur QtDesigner (D'ailleurs, je comprend pas la difference antre Qdialog et QMainWindow juste la difference avec un menu en haut de page)
Une fois crée je les ai transformé, .ui => .py

Mais avec les .py je n'arrive pas à afficher une seconde fenetre lors de l'appuie d'un QPushButton, problème que je n'avais pas avec loadUi. Je vous montre mes deux codes

Test1 :

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# Form implementation generated from reading ui file 'test1.ui'
#
# Created by: PyQt5 UI code generator 5.9.2
#
# WARNING! All changes made in this file will be lost!
 
from PyQt5 import QtCore, QtGui, QtWidgets
from asa_control.test2 import Ui_Dialog
class Ui_test1(object):
    def setupUi(self, test1):
        test1.setObjectName("test1")
        test1.resize(800, 600)
        self.centralwidget = QtWidgets.QWidget(test1)
        self.centralwidget.setObjectName("centralwidget")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(274, 160, 141, 51))
        self.pushButton.setObjectName("pushButton")
 
 
        test1.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(test1)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21))
        self.menubar.setObjectName("menubar")
        test1.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(test1)
        self.statusbar.setObjectName("statusbar")
        test1.setStatusBar(self.statusbar)
 
        self.retranslateUi(test1)
        QtCore.QMetaObject.connectSlotsByName(test1)
        self.testing2 = Ui_Dialog()
 
        self.pushButton.clicked.connect(self.gotest2)
    def retranslateUi(self, test1):
        _translate = QtCore.QCoreApplication.translate
        test1.setWindowTitle(_translate("test1", "MainWindow"))
        self.pushButton.setText(_translate("test1", "PushButton"))
 
    def gotest2(self):
        #.vue = self.testing2.setupUi2(Dialog)
        self.testing2
 
        #self.confasa.recupinfo()
 
if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    test1 = QtWidgets.QMainWindow()
    ui = Ui_test1()
    ui.setupUi(test1)
    ui.gotest2()
    test1.show()
    sys.exit(app.exec_())
Test2 :

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
# -*- coding: utf-8 -*-
 
# Form implementation generated from reading ui file 'test2.ui'
#
# Created by: PyQt5 UI code generator 5.9.2
#
# WARNING! All changes made in this file will be lost!
 
from PyQt5 import QtCore, QtGui, QtWidgets
 
class Ui_Dialog(object):
    def setupUi2(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(400, 300)
 
        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)
 
    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
 
 
if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    Dialog = QtWidgets.QDialog()
    ui = Ui_Dialog()
    ui.setupUi2(Dialog)
    Dialog.show()
    sys.exit(app.exec_())
J'aimerai juste aller à la QWidget test2 en cliquant sur le bouton du QWidget Test1.
J'ai crée une fonction où je réaliser l'appel du code avec un clicked.connect

Merci d'avance pour votre aide

EDIT: Le "Dialog me bloque le plus souvent, j'ai ce message d'erreur : name 'Dialog' is not defined quand je fais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
self.testing2.setupUi2(Dialog)