Ресайз самодельного окна QT

На QT решил сделать нестандартное окно. С кнопками выхода и сворачивания окна проблем нет,перетаскивание также имеется, теперь встал вопрос, как можно сделать : 1)Ресайз мышкой 2)Полный/неполный экран Само окно реализовывал, делая сам фон виджета прозрачным

mainwindow.h:

    class MainWindow : public QMainWindow
{
    Q_OBJECT
    QPoint m_ptPosition;
public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
private slots:
    void on_pushButton_clicked();
    void on_pushButton_2_clicked();
    void on_pushButton_3_clicked();

protected:

    virtual void mousePressEvent(QMouseEvent* );
    virtual void mouseMoveEvent(QMouseEvent*);
private:
    Ui::MainWindow *ui;
};

mainwindow.cpp:

 MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    this->setWindowFlags(Qt::FramelessWindowHint);
    this->setAttribute(Qt::WA_TranslucentBackground);
}
MainWindow::~MainWindow()
{
    delete ui;
}
void MainWindow::mousePressEvent(QMouseEvent *pe)
{
    m_ptPosition=pe->pos();
}
void MainWindow::mouseMoveEvent(QMouseEvent *pe)
{
    move(pe->globalPos()-m_ptPosition);
}
void MainWindow::on_pushButton_clicked()
{
    close();
}
void MainWindow::on_pushButton_2_clicked()
{
    showMinimized();
}
void MainWindow::on_pushButton_3_clicked()
{
    showMaximized();
}

void MainWindow::on_pushButton_3_clicked() это как раз событие нужной кнопки, showMaximized помещает окно в левый верхний угол, не изменяя размеры виджета, что и ожидаемо. Мне же нужно, чтобы ресайз производился как в стандартных окнах.


Ответы (0 шт):