ваша кнопка определена внутри конструктора, поэтому после того, как вы выполните
btn->resize(100,100);
btn->show();
и выйдите из конструктора, у вас ничего не будет в руке, чтобы манипулировать кнопкой (что вам сейчас нужно)
Один из способов решить эту проблему - объявить кнопку в качестве члена класса, а затем вы можете использовать ее имя, чтобы изменить ее так, как вам нужно.
edit:
заголовок:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QPushButton>
namespace Ui
{
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void on_pushButton_2_clicked();
void on_pushButton_clicked();
private:
Ui::MainWindow *ui;
QPushButton *myButton{nullptr};
};
#endif // MAINWINDOW_H
cpp:
#include "MainWindow.h"
#include "ui_MainWindow.h"
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
myButton = new QPushButton("some button");
myButton->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
myButton->move(150,150);
myButton->resize(100,100);
}
MainWindow::~MainWindow()
{
delete ui;
delete myButton;
}
void MainWindow::on_pushButton_2_clicked()
{
myButton->show();
}
void MainWindow::on_pushButton_clicked()
{
// close or do what ever you want with it
myButton->close();
}