Widget PyQt connect () et disconnect ()
Selon les conditions, je tiens à vous connecter/re-connecter un bouton à une fonction différente.
Disons que j'ai un bouton:
myButton = QtGui.QPushButton()
Pour cet exemple, disons que je vérifie si il y a une connexion internet.
if connected == True:
myButton.clicked.connect(function_A)
elif connected == False:
myButton.clicked.connect(function_B)
Tout d'abord, je tiens à déconnecter un bouton à partir de n'importe quelle fonction il a déjà été connecté avant que le bouton est en train d'être ré-attribué/re-connecté à une autre fonction (function_A ou function_B).
Deuxièmement, j'ai déjà remarqué qu'après que le bouton est à nouveau connecté, il prend cliquez sur le bouton pour ramasser une nouvelle fonction. Après que le bouton est à nouveau connecté à une autre fonction, il tente toujours d'exécuter une fonction précédente - une fonction à laquelle un bouton a été connecté auparavant (avant une re-connexion). S'il vous plaît conseils. Merci à l'avance!
ÉDITÉ PLUS TARD:
Il apparaît un widget de .disconnect() méthode peut être utilisée pour déconnecter un bouton à partir d'une fonction, il est connecté.
myButton.disconnect()
Malheureusement .disconnect() renvoie une erreur si un widget n'est pas connecté à n'importe quelle fonction.
Pour la contourner, je suis en utilisant Try/except. Mais je préfère utiliser une solution plus élégante...
try: myButton.clicked.disconnect()
except Exception: pass
source d'informationauteur alphanumeric
Vous devez vous connecter pour publier un commentaire.
Si vous avez besoin de reconnecter des signaux dans de nombreux endroits, vous pouvez définir un générique de la fonction d'utilité comme ceci:
(NB: la boucle est nécessaire pour transporter en toute sécurité de la déconnexion d'un gestionnaire spécifique, car elle peut avoir été connecté plusieurs fois, et
disconnect
supprime uniquement une connexion à la fois.).Essayez ceci: