QT5 窗口移动事件(不教学,直接复制粘贴代码)

前言

  在去掉系统的标题栏后,我们需要自己用代码控制程序窗口的移动,并且编写自己的标题栏,最小化、最大化、关闭等功能按钮。本文将带你实现这些功能。


实现步骤:

  1、首先去掉系统自带标题栏
    this->setWindowFlags(Qt::Window|Qt::FramelessWindowHint);
  2、写入窗口移动代码

  (1)在.h中的class类声明中增加如下代码(可直接复制粘贴)

private:
    Ui::QWidget_Test *ui;

    QPoint _mouseMovePosition;

protected:
    virtual void mousePressEvent(QMouseEvent *event);
    virtual void mouseMoveEvent(QMouseEvent *event);
    virtual void mouseReleaseEvent(QMouseEvent *event);

  (2)在.cpp中增加如下代码(可直接复制粘贴)

#include <QPoint>

void QWidget_Test::mousePressEvent(QMouseEvent *event)
{
    _mouseMovePosition = event->globalPos() - this->pos();
    return QMainWindow::mousePressEvent(event);
}

void QWidget_Test::mouseMoveEvent(QMouseEvent *event)
{
    this->move(event->globalPos() - _mouseMovePosition);
    return QMainWindow::mouseMoveEvent(event);
}

void QWidget:_Test::mouseReleaseEvent(QMouseEvent *event)
{
    this->move(event->globalPos() - _mouseMovePosition);
    return QMainWindow::mouseReleaseEvent(event);
}

注意:
  (1)代码中的QMainWindow是与你所创建工程的种类对应的,例如如果你建立的是QWidget,代码中的QMainWindow就相应的替换为QWidget。
  (2)代码中函数的QWidget_Test与你创建的文件名对应。

  3、创建按钮,并创建槽函数
connect(ui->pushbutton_1,SIGNAL(clicked()),this,SLOT(close()));		//关闭窗口按钮
connect(ui->pushbutton_2,SIGNAL(clicked()),this,SLOT(showMinimized()));		//最小化窗口按钮
connect(ui->pushbutton_3,SIGNAL(clicked()),this,SLOT(showMaximized()));		//最大化窗口按钮

  这样,一个自定义标题栏的窗口就做好了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值