Bonjour,

N'étant pas encore à l'aise avec PyQt, j'ai tenté de réaliser une appli avec fenêtre principale et une fenêtre modale (appelée "paramètres" sans trop bien réfléchir sur son nom) dans laquelle j'ai certaines actions à réaliser avant de renvoyer certaines données. Pour le moment, je ne me suis pas penché sur la question du retour de ces données. Mon problème, actuellement est l'interaction avec les évènements et les widgets. Je mets ci-dessous le bout de code de la fenêtre modale qui s'ouvre bien à l'appel du bouton de la fenêtre principale. Pour info, les fenêtres ont été réalisées avec QT6.6.2.


# -*- coding: utf-8 -*-

################################################################################
## Form generated from reading UI file 'ParametresDraJYv.ui'
##
## Created by: Qt User Interface Compiler version 6.6.2
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################

from PyQt6.QtCore import QCoreApplication, QMetaObject, QRect, QSize, Qt, QIODevice, pyqtSlot
from PyQt6.QtGui import QCursor, QFont, QIcon
from PyQt6.QtWidgets import QComboBox, QGridLayout, QGroupBox, QHBoxLayout, QLabel, QSizePolicy, QSpinBox, QVBoxLayout, QWidget, QPushButton

from PyQt6.QtSerialPort import QSerialPort, QSerialPortInfo

class Ui_Parametres(object):
def setupUi(self, Parametres):
self.port = QSerialPort()
if not Parametres.objectName():
Parametres.setObjectName(u"Parametres")
Parametres.setWindowModality(Qt.WindowModality.WindowModal)
Parametres.resize(482, 500)
Parametres.setTabletTracking(False)
Parametres.setContextMenuPolicy(Qt.ContextMenuPolicy.DefaultContextMenu)
icon = QIcon()
icon.addFile(u"config 32x32.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
Parametres.setWindowIcon(icon)
Parametres.setSizeGripEnabled(False)
Parametres.setModal(True)
self.gridLayoutWidget = QWidget(Parametres)
self.gridLayoutWidget.setObjectName(u"gridLayoutWidget")
self.gridLayoutWidget.setGeometry(QRect(0, 0, 481, 471))
self.gridLayout = QGridLayout(self.gridLayoutWidget)
self.gridLayout.setSpacing(0)
self.gridLayout.setObjectName(u"gridLayout")
self.gridLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_2 = QVBoxLayout()
self.verticalLayout_2.setSpacing(0)

...

self.gridLayout.addLayout(self.verticalLayout_4, 2, 0, 1, 2)

self.verticalLayout_5 = QVBoxLayout()
self.verticalLayout_5.setObjectName(u"verticalLayout_5")
self.verticalLayout_5.setContentsMargins(-1, -1, 0, -1)
self.pushButtonConnect = QPushButton(u"Connexion", self.gridLayoutWidget)
self.pushButtonConnect.setObjectName(u"pushButtonConnect")
self.pushButtonConnect.setMinimumSize(QSize(80, 30))
self.pushButtonConnect.setMaximumSize(QSize(80, 30))

self.verticalLayout_5.addWidget(self.pushButtonConnect, 0, Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignBottom)


self.gridLayout.addLayout(self.verticalLayout_5, 3, 0, 1, 1)

self.verticalLayout_7 = QVBoxLayout()
self.verticalLayout_7.setObjectName(u"verticalLayout_7")
self.verticalLayout_7.setContentsMargins(10, -1, -1, -1)
self.pushButtonCancel = QPushButton(u"Annuler",self.gridLayoutWidget)
self.pushButtonCancel.setObjectName(u"pushButtonCancel")
self.pushButtonCancel.setMinimumSize(QSize(80, 30))
self.pushButtonCancel.setMaximumSize(QSize(76, 30))

self.verticalLayout_7.addWidget(self.pushButtonCancel, 0, Qt.AlignmentFlag.AlignLeft|Qt.AlignmentFlag.AlignBottom)

self.gridLayout.addLayout(self.verticalLayout_7, 3, 1, 1, 1)

self.retranslateUi(Parametres)

self.pushButtonConnect.clicked.connect(self.onButtonChanged)
self.pushButtonCancel.clicked.connect(Parametres.close)

QMetaObject.connectSlotsByName(Parametres)
# setupUi

def retranslateUi(self, Parametres):
Parametres.setWindowTitle(QCoreApplication.translate("Parametres", u"Param\u00e8tres de connexion", None))
...
# retranslateUi

def onButtonChanged(self, Parametres):
print("Super!!")
#self.status_port.setText(QCoreApplication.translate("Parametres", "New and Updated Text", None))
self.status_port.setText("New and Updated Text")


Dans ce programme, la fenêtre s'affiche bien mais je n'arrive pas, en cliquant sur le "pushButtonConnect" à avoir le résultat escompté à l'appel de la méthode "onButtonChanged". Avant toutes mes modifications, le fichier d'origine utilisait un "QDialogButtonBox" qui ne fonctionnait pas aussi (enfin que je n'arrivais pas à ...). J'ai donc fais mes modifs persos et le bouton de fermeture fonctionne (50% de réussite.... encore que le programme n'est pas terminé :icon_cry.gif:.
Quelqu'un aurait-il une idée pour résoudre ce problème?
Si cela est nécessaire, je peux retourner le code complet (environ 400 lignes pour cette fenêtre modale).

Merci beaucoup par avance