The following code:
Suppose you call your dialog box, for example, from the MainWindow::on_but_admin_clicked() function:
In mainwindow.cpp
void MainWindow::on_but_admin_clicked() { //Declare a private object in your mainwindow.h like this: //login* objlogin; objlogin = new login(); //Connect signals to later call the method setHiden(false) QObject::connect(objlogin, SIGNAL(stackoverflowAnswer()), this, SLOT(makeVisible())); objlogin->show(); } //... // The function that will be called from login dialog to enable hidden buttons void MainWindow::makeVisible() { ui->but_save->setHidden(false); ui->but_delete1->setHidden(false); ui->but_delete2->setHidden(false); ui->but_upload1->setHidden(false); ui->but_upload2->setHidden(false); }
In login.cpp (function on_ok_clicked ()):
void login::on_ok_clicked() { QString username = ui->username->text(); QString password = ui->password->text(); if(username == "123" && password == "123") { ***HERE, after this block executed i want that buttons visible on mainwindow*** emit stackoverflowAnswer();
Remember to declare signals and slots in login.h :
signals: void stackoverflowAnswer(); private slots: void on_ok_clicked();
source share