как развернуть, затем перетащить и изменить размер окна Qt - PullRequest
0 голосов
/ 20 января 2019

Мне нужно развернуть, затем перетащить строку заголовка, когда я нажимаю и перемещаю курсор мой код:

void mousePressEvent(QMouseEvent* event){
        pos_x = event->x();
        pos_y = event->y();
            if(pos_y < 30){
                if(isMaximized()){
                    isMaximizeforfunction = true;
                    max_width = window()->width();
                }else{
                    isMaximizeforfunction = false;
                }
                isMoving= true;
            }
    }
    void mouseMoveEvent(QMouseEvent* event){
        if(isMoving){
            if(isMaximizeforfunction){
                if(isMaximized()){
                    showNormal();
                }
                if(pos_x > ((max_width / 2) + (window()->width() / 2) + (max_width / 4)) && pos_x < max_width){
                    move(event->globalX() + ((max_width / 2) + (window()->width() / 2)) - pos_x, event->globalY() - pos_y);
                }else{
                    move(event->globalX() - pos_x, event->globalY() - pos_y);
                }
            }else{
                move(event->globalX() - pos_x, event->globalY() - pos_y);
            }
        }
    }
    void mouseReleaseEvent(QMouseEvent* /*event*/){
            isMoving= false;
    }
    void mouseDoubleClickEvent(QMouseEvent* /*event*/){
        maximized_unmaximized();
    }

private:
    int pos_x;
    int pos_y;
    bool isMoving{false};
    bool isMaximizeforfunction{false};
    int max_width;

У меня проблема с моим кодом, когда я нажимаю на середину строки заголовка, у меня разрыв между курсором и окном, как в строке заголовка реальных окон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...