#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QInputDialog>
#include <QLabel>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
signals:
    void enter();
private slots:
    void on_Generate_clicked();
public slots:
    void gen();
    void lb();
private:
    Ui::MainWindow *ui;
    int wid,hei;
    QVector<QVector<QPushButton*>> df;
    QLabel* lbl;
};
#endif // MAINWINDOW_H

//MAINWINDOW_CPP
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QLabel>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QPushButton* f = ui->Generate;
    ui->Generate->move((width()-f->width())/2,f->pos().y());
}

MainWindow::~MainWindow()
{
    delete ui;
}


void MainWindow::on_Generate_clicked()
{
    wid = QInputDialog::getInt(this,"Widht","Widht",0,0,70);
    hei = QInputDialog::getInt(this,"Height","Height",0,0,70);
    emit enter();
}

void MainWindow::gen(){
    for(int i=0; i < wid;i++){
        df.push_back(QVector<QPushButton*>());
        for(int j=0;j<hei;j++){
            df[i].push_back(new QPushButton(this));
            df[i][j]->setGeometry(20*i,20*j+30,20,20);
            df[i][j]->show();

            QObject::connect(df[i][j], &QPushButton::clicked, this, &MainWindow::lb);
        }

    }



}

void MainWindow::lb(){
    QObject *senderObj = sender();
    qDebug() << senderObj->objectName();
}

//main
#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    QObject::connect(&w,&MainWindow::enter,&MainWindow::gen);
    return a.exec();
}