Qt重新实现QMouseEvent实现自定义窗口可拖动

本文介绍了如何在Qt中实现无边框窗口(如QDialog或QMainWindow)的鼠标拖动功能。通过重写QMousePressEvent, QMouseReleaseEvent和QMouseMoveEvent,使控件能够响应鼠标事件并实现拖动操作。" 136266359,7337247,MXNet深度解析:AI大模型的核心框架,"['深度学习', 'MXNet', '自动微分', '编程语言', '框架']
摘要由CSDN通过智能技术生成

需求描述:将QDialog或QMainWindow设置为FrameLess格式后,无法使用鼠标拖动;或者自己创建的控件不能被鼠标拖动。 我们的目的是让这个控件可以被鼠标拖动。

实现方法:重写这个控件的QMouseEvent函数(包括QMousePressEvent,QMouseRealseEvent和QMouseMoveEvent)

具体代码实现(需要使用QMouseEvent):

(1)pro文件中加入:

QT +=  gui
(2)h文件的类中加入头文件:

#include <QMouseEvent>

类中加入函数和变量声明:

protected:
    void mouseMoveEvent(QMouseEvent* event);
    void mousePressEvent(QMouseEvent* event);
    void mouseReleaseEvent(QMouseEvent* event);
private:
    QPoint mLastMousePosition;
    bool mMoving;
(3)cpp文件中加入鼠标事件相关函数的定义(我将上面的函数声明放入我创建的类login中了,所以下面的函数定义是 login::):

void login::mousePressEvent(QMouseEvent* event)
{
    if(e
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值