How to set a button property to a view from a widget in Qt

I have one window that includes all buttons and some hidden buttons.

Now I want to set the visibility to true from another dialog.

How to do it? I have googled, but I can not solve this problem.

#include "mainwindow.h" #include "ui_mainwindow.h" #include "rams.h" #include "abtdev.h" #include "syllabus.h" #include "login.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); setWindowFlags(Qt::Window | Qt::FramelessWindowHint); QMainWindow::showFullScreen(); **ui->but_save->setHidden(true); ui->but_delete1->setHidden(true); ui->but_delete2->setHidden(true); ui->but_upload1->setHidden(true); ui->but_upload2->setHidden(true);** } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_but_abt_clicked() { abtdev a; a.exec(); } void MainWindow::on_but_Syllabus_clicked() { syllabus s; s.showFullScreen(); s.exec(); } void MainWindow::on_but_admin_clicked() { login objlogin; objlogin.exec(); } void MainWindow::on_but_rams_clicked() { // rams ramswin; // ramswin.showFullScreen(); // ramswin.exec(); } 

And I want it to appear after the completion of this dialog box!

 #include "login.h" #include "ui_login.h" #include<QTimer> #include "mainwindow.h" #include "ui_mainwindow.h" #include<QObject> login::login(QWidget *parent) : QDialog(parent), ui(new Ui::login) { ui->setupUi(this); setWindowFlags(Qt::Window | Qt::FramelessWindowHint); QTimer::singleShot(60000, this, SLOT(close())); ui->password->setEchoMode(QLineEdit::Password); } login::~login() { delete ui; } 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*** } else { ui->label_4->setText("Username and password is not correct !!"); } } 
+5
source share
1 answer

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(); 
+2
source

Source: https://habr.com/ru/post/1262767/


All Articles