Ресайз самодельного окна 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 помещает окно в левый верхний угол, не изменяя размеры виджета, что и ожидаемо. Мне же нужно, чтобы ресайз производился как в стандартных окнах.