How to sent signal to mainwindow when child dialog is closed



  • Hi,

    I'm new in QT and i have some problems with signals and slots.
    I created and showed dialog on main window (when user click on graph, dialog is shown). Now, I want when close this dialog, to execute slot action defined on main window (draw text on mainwindow graph). Paert of mainwindow code:

    @
    Dialog *d=new Dialog();
    connect(d, SIGNAL(d->finished(int)), this, SLOT(iscrtaj()));
    d->show();
    @

    This is code for showing dialog after clicks on graph.

    In mainwindow, I defined slot called iscrtaj and implement it just to show message box (for test).
    This doesn't work. When dialog is closed, nothing is happening.

    I tried the same code, just in constructor of dialog, so slot is implemented in dialog:

    @connect(this, SIGNAL(d->finished(int)), this, SLOT(iscrtaj()));@

    and it works.

    So, problem is to link mainwindow and dialog.
    Can anybody tell me how?

    This is really urgent for me. I appreciate any kind of help.

    Thanks,

    Amer



  • Maybe
    @SIGNAL(finished(int))@
    instead of
    @SIGNAL(d->finished(int))@ ?



  • It doesn't work. I also changes first argument from this to d (because when d is dinished, signal shoulčd be sent), but it also doesn't work.

    Thank you for your answer anyway


  • Moderators

    try this in mainwindow constructor :

    @ myDialog* d = new myDialog(this);
    connect(ui->pushButton,SIGNAL(clicked()), d, SLOT(show()));//here you show the dialog by clicking on your graph,
    // i use pushbutton instead
    connect(d,SIGNAL(finished(int)), this, SLOT(iscrtaj()));@
    I made i small workable example with a mainwindow and a dialog and it works for me like this.

    just added in mainwindow :

    @public slots :
    void iscrtaj(){qDebug() << "testconnect";}@


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.