Tout d'abord bonjour à tous, alors j'ai un petit soucis étant un réel débutant en programmation python et également dans cette bibliothèques PyQt. (J'utilise PyCharm)
Alors j'ai deux fenêtres que j'ai édité avec Qt Designer, Par la suite j'ai converti ces fichiers.ui en py grâce à la commande suivante: pyuic5 -x nomFichier.ui -o nomFichier.py
Ma fenêtre principale se nomme : firstwindow.ui et la fenêtre que j'aimerais obtenir en appuyant sur un bouton se nommant : camerabtn se nomme : camera.ui
Ma fenêtre principale est une MainWindow et la secondaire "camera" est un Widget.
J'aurais pu ouvrir ma nouvelle fenêtre en modifiant et en ajoutant des lignes de codes dans les fichiers py qui ont était automatiquement générés mais comme je vais sûrement éditer encore mes fenêtres j'ai pas envie que mes signaux slots que j'ai rajouté disparaissent à chaque fois que je convertis mes fenêtre ui en py.
J'ai donc décider de créer un nouveau files py qui me servira de "main". Mais même en me documentant et en recherchant je ne sais absolument pas comment faire pour ouvrir ma fenêtre "camera" en appuyant sur le bouton "camerabtn" qui est sur ma fenêtre principale "firstwindow" .
je vous joint le programme "main" qui compile bien la fenêtre principale mais qui n'ouvre pas la seconde quand j'appuie sur le bouton. Merci à ceux qui pourront m'aider à pouvoir ouvrir cette deuxième fenêtre "camera"
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 from PyQt5 import QtWidgets, QtCore, QtGui, uic import sys import X from firstwindow import Ui_MainWindow from camera import Ui_Form class applicationIHM(QtWidgets.QMainWindow): def __init__(self): super(applicationIHM, self).__init__() self.ui = Ui_MainWindow() self.ui.setupUi(self) class applicationCAMERA(QtWidgets.QWidget): def __init__(self): super(applicationCAMERA, self).__init__() self.ui = Ui_Form() self.ui.setupUi(self) self.camerabtn.clicked.connect(self.secondscr) def secondscr(self): self.Form = QtWidgets.QWidget() self.ui = Ui_Form() self.ui.setupUi(Form) self.Form.show() def main(): app = QtWidgets.QApplication(sys.argv) application = applicationIHM() application.show() sys.exit(app.exec_()) if __name__ == "__main__": main()
Partager