[Qt] signal connected() avec une socket

Résolu/Fermé
erwan - 25 janv. 2012 à 15:53
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 25 janv. 2012 à 16:05
bonjour
j'essaie d'afficher dans un label l'état de ma socket et pour cela j'utilise le signal connected() que l'on trouve dans QAbstractSocket mais il y'a une erreur quelqu'un aurait une idée qui pourrait m'aider ?
merci

voila le code
void MainWindow::etat()         //affiche l'état de la socket
{
    if(soc.state()==QAbstractSocket::connected())
    {
        ui->labeletat->setText("connecté");
    }
    if(soc.state()==QAbstractSocket::disconnected())
    {
        ui->labeletat->setText("déconnecté");
    }
}

1 réponse

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
25 janv. 2012 à 16:05
Bonjour,
c'est normal, ce que tu appel est un signal et ne retourne rien !
http://developer.qt.nokia.com/doc/qt-4.8/QAbstractSocket.html
visiblement tu ne sais pas utiliser les signaux.
Ce que je ferais, tu mets ton label à "deconnecter" par défaut, puis dans le constructeur de MainWindow:
connect(soc,SIGNAL(connected()),MainWindow,SLOT(etat()) );
attention à la syntaxe, je fais de mémoire, il faut peut être inversé les deux (cf. doc)
ensuite, tu définis ainsi :
void MainWindow::etat()         //affiche l'état de la socket
{
        ui->labeletat->setText("connecté");
}
Ou, si tu veux savoir si tu es deconnecter à chaque instant, tu passes un paramètre à etat et tu connectes le signal stateChanged à la place de connected.
Ce qui te permettra en plus d'avoir plusieurs états.
1