QT's response window is maximized, minimized, and normal display status changes

        The maximization, minimization, normal display, and activation status of the response window in QT are implemented using the event processing function QWidget::changeEvent.

The window states are as follows:

    enum WindowState {
        WindowNoState    = 0x00000000, 
        WindowMinimized  = 0x00000001,//最小化
        WindowMaximized  = 0x00000002,//最大化
        WindowFullScreen = 0x00000004,//全屏幕
        WindowActive     = 0x00000008 //激活状态
    };

Example:

head File:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QPaintEvent>
#include <QMainWindow>
#include <QWindowStateChangeEvent>
class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

protected:
    void changeEvent(QEvent*);
};
#endif // MAINWINDOW_H

accomplish:

#include "mainwindow.h"
#include <QDebug>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{

}

MainWindow::~MainWindow()
{
}

void MainWindow::changeEvent(QEvent* event)
{
    if(QEvent::WindowStateChange == event->type())
    {
          QWindowStateChangeEvent * stateEvent = dynamic_cast<QWindowStateChangeEvent*>(event);
          if(Q_NULLPTR != stateEvent){
              if(Qt::WindowMinimized == stateEvent->oldState())
              {
                qDebug()<<"窗口旧状态是最小化";
              }
          }
      }
      QMainWindow::changeEvent(event);
}

 

Guess you like

Origin blog.csdn.net/hulinhulin/article/details/133346389