Donc, fondamentalement, j'ai hérité de QPushButton et je veux gérer le signal directement dans la classe. J'ai aussi promu le bouton que je veux dans cette nouvelle classe.Impossible de configurer la méthode de la classe héritée en tant que slot pour le signal de clic
Je l'ai fait:
QObject::connect(ui->pickWatermarkButton, SIGNAL(clicked()),ui->pickWatermarkButton, SLOT(handleButton()));
Le handleButton existe et est déclarée comme une fente publique. Cependant, quand je clique sur le bouton, rien ne se passe.
J'ai changé la fente à une fonction de localisation, à l'intérieur de la fenêtre principale, et surprise, cela fonctionne! Apparemment, il ne refuse de travailler que lorsque j'essaie d'utiliser comme slot une méthode dans la classe héritée!
Assurez-vous qu'il y a une macro 'Q_OBJECT' dans votre classe de boutons et que' handleButton() 'est déclaré dans la section' slots: '. – LogicStuff
Comme dit LogicStuff. Si ce n'est pas la macro Q_OBJECT manquante, ajoutez votre en-tête de sous-classe QPushButton ici. Vérifiez également la console pour les erreurs de l'appel connect(). –
J'ai ajouté la macro Q_OBJECT. Mais maintenant je reçois des erreurs de "référence indéfinie à vtable". Et oui, j'ai défini un destructeur! – GCooper