Comment déconnecter un signal avec un slot temporairement en Qt?

- Je connecter un slot avec un signal. Mais maintenant, je veux déconnecter temporairement.

Ici une partie de ma déclaration de classe:

class frmMain : public QWidget
{
    ...
private:
    QTimer *myReadTimer;
    ...
private slots:
    void on_btnDownload_clicked();
    ...
};

Dans le constructeur de frmMainje me connecte myReadTimer avec une fente de sorte que ReadMyCom sera appelée à chaque 5 secondes:

myReadTimer=new QTimer(this);
myReadTimer->setInterval(5000);
connect(myReadTimer,SIGNAL(timeout()),this,SLOT(ReadMyCom()));

Mais, dans le logement on_btnDownload_clicked. Je ne veux pas myReadTimer d'émettre un signal dans les on_btnDownload_clickedchamp d'application. Je tiens donc à les déconnecter au début de on_btnDownload_clicked et reconnectez-le à la fin. Comme ceci:

void frmMain::on_btnDownload_clicked()
{
    //some method to disconnect the slot & singal

    ...//the code that I want myReadTimer to leave me alone

    //some method to reconnect the slot & singal
}

J'ai cherché dans Stackoverflow et a obtenu une réponse comme appeler la QObject destructeur. Mais je ne sais pas comment l'utiliser.

J'ai aussi essayé d'utiliser disconnectcomme:

QMetaObject::Connection myConnect;
myConnect=connect(myReadTimer,SIGNAL(timeout()),this,SLOT(ReadMyCom()));
...
disconnect(& myConnect);

Mais toujours pas de travail. Ainsi pouvait-on m'aider comment faire?

source d'informationauteur ctxrr