J'ai utilisé QT Designer pour avoir deux QLineEdit pour prendre l'entrée de l'utilisateur. Une fois que l'utilisateur a entré les valeurs, lorsque le bouton Entrée est cliqué, j'ai besoin des boutons pour transmettre les valeurs à la fonction disk_angles.Pour envoyer deux arguments à une fonction avec le clic d'un bouton
Comment passer deux chaînes à une fonction via des signaux en appuyant sur un bouton? Voici mon code
class Maindialog(QMainWindow,diskgui.Ui_MainWindow):
pass_arguments = SIGNAL((str,),(str,))
def __init__(self,parent = None):
super(Maindialog,self).__init__(parent)
self.setupUi(self)
self.connect(self.Home,SIGNAL("clicked()"),self.home_commands)
self.connect(self.AutoFocus,SIGNAL("clicked()"),self.auto_focus)
self.Enter.clicked.connect(self.entervalues)
self.connect(self,SIGNAL("pass arguments"),self.Criterion_disk_angles)
def entervalues(self):
if self.RotationEdit.text() != "" and self.TiltEdit.text() != "":
self.RotationEdit = str(self.RotationEdit.text())
self.TiltEdit = str(self.TiltEdit.text())
self.pass_arguments.emit(self.RotationEdit,self.TiltEdit)
def disk_angles(self,rotation_angle, tilt_angle):
J'ai essayé de passer tuples en entrée au signal pass_arguments = SIGNAL((str,),(str,))
mais je reçois l'erreur
pass_arguments = SIGNAL((str,),(str,))
TypeError: SIGNAL() takes exactly one argument (2 given)
Avez-vous lu l'erreur? 'SIGNAL' prend 1 argument, mais vous avez fourni 2 ... – Li357
@Andrew Li Oui, mais je lis que vous pouvez passer deux arguments dans un signal si vous le passez comme un tuple. Mais je l'ai compris mal le –
essayez avec pass_arguments = SIGNAL ((str, str)) – eyllanesc