How to set property of button to visible from widget in Qt

Course Queries Syllabus Queries 2 years ago

0 2 0 0 0 tuteeHUB earn credit +10 pts

5 Star Rating 1 Rating

Posted on 16 Aug 2022, this text provides information on Syllabus Queries related to Course Queries. Please note that while accuracy is prioritized, the data presented might not be entirely correct or up-to-date. This information is offered for general knowledge and informational purposes only, and should not be considered as a substitute for professional advice.

Take Quiz To Earn Credits!

Turn Your Knowledge into Earnings.

tuteehub_quiz

Answers (2)

Post Answer
profilepic.png
manpreet Tuteehub forum best answer Best Answer 2 years ago


I have one window which includes all the buttons and there are some buttons that are hidden.

Now I want set visibility to true from another dialog.

How to do it? I have googled it but I am unable to 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 appear after this dialog box get completed!

#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->
                                                
                                                
0 views
0 shares
profilepic.png
manpreet 2 years ago

The code you need is next:

Supposing that you call your dialog for example from MainWindow::on_but_admin_clicked()function:

On 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);
}

On login.cpp (on_ok_clicked() function):

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 in login.h the signals and slots:

signals:
    void stackoverflowAnswer();
private slots:
    void on_ok_clicked();

0 views   0 shares

No matter what stage you're at in your education or career, TuteeHub will help you reach the next level that you're aiming for. Simply,Choose a subject/topic and get started in self-paced practice sessions to improve your knowledge and scores.