2015-04-09 3 views
0

Après avoir essayé une multitude de combinaisons, je n'arrive pas à appeler Qt pour appeler une fonction dans ma boîte de dialogue principale lorsqu'une autre boîte de dialogue est fermée.Fonction d'appel lorsque la fenêtre de dialogue enfant est fermée dans Qt

J'ai regardé et essayé quelques choses avec le signal et la fente, mais en vain: QObject::connect(edit_dialog, SIGNAL(finished(int)), this, refresh_table());

En bref, j'ai une table qui affiche des données à partir d'un conteneur personnalisé. Edit_dialog permet d'éditer des valeurs et d'envoyer les modifications directement à la base de données via un ensemble de fonctions externes (elles fonctionnent). Mais une fois cette boîte de dialogue fermée, j'aimerais que la table soit rechargée avec les données mises à jour du conteneur qui la récupèrent de la base de données.

DB-> Container-> Tableau GUI

je me rends compte Qt a des bibliothèques natives pour lire/écrire à BDs mais c'est pas bon pour mon but. J'ai besoin d'un moyen d'appeler automatiquement la fonction refresh_table() que j'ai essayé de mettre dans les 'slots publics' sans plus de succès.

Répondre

0

Vous avez fait de connecter la fonction de table de rafraîchissement à un SLOT()

connect(edit_dialog, SIGNAL(finished(int)), this, SLOT(refresh_table())); 

Autre que il semble y avoir rien de mal à votre approche.

Vous pouvez également créer votre propre signal et le connecter à la fonction refresh_table() en utilisant par exemple le sur événement de clic d'un bouton « Ok », « Annuler » dans cette boîte de dialogue et d'appeler

emit ownSignal();

dedans.

+0

a créé le mien à la fin ('signals: void hasUpdated();' dans la déclaration de classe) et l'a émis. Travaillé comme un charme, merci pour cela. –