当前位置: 首页 > wzjs >正文

海淀高端企业网站建设马蹄室内设计网论坛

海淀高端企业网站建设,马蹄室内设计网论坛,十堰推广公司,厦门网站的建设Qt实现鼠标拖动窗口 1、设置窗口无边框2、重写鼠标点击,移动函数2.1添加头文件2.2 重写函数2.3 添加定义 3、定义一个偏移值4、判断鼠标左键是否按下并计算偏移值5、移动窗口6、.h文件和.cpp文件6.1 .h文件6.2 .cpp文件 7、总结 1、设置窗口无边框 this->setWin…

Qt实现鼠标拖动窗口

  • 1、设置窗口无边框
  • 2、重写鼠标点击,移动函数
    • 2.1添加头文件
    • 2.2 重写函数
    • 2.3 添加定义
  • 3、定义一个偏移值
  • 4、判断鼠标左键是否按下并计算偏移值
  • 5、移动窗口
  • 6、.h文件和.cpp文件
    • 6.1 .h文件
    • 6.2 .cpp文件
  • 7、总结

1、设置窗口无边框

this->setWindowFlag(Qt::FramelessWindowHint);        //设置窗口无边框

2、重写鼠标点击,移动函数

2.1添加头文件

在这里插入图片描述

2.2 重写函数

在这里插入图片描述

2.3 添加定义

//鼠标移动事件
void wearherMainInterface::mouseMoveEvent(QMouseEvent *event)
{}

3、定义一个偏移值

在这里插入图片描述

4、判断鼠标左键是否按下并计算偏移值

//鼠标点击事件
void wearherMainInterface::mousePressEvent(QMouseEvent *event)
{//判断右键是否按下if(event->button() == Qt::RightButton){quitMenu->exec(QCursor::pos());           //当前鼠标位置显示菜单}//判断左键是否按下if(event->button() == Qt::LeftButton){}
}

5、移动窗口

//鼠标移动事件
void wearherMainInterface::mouseMoveEvent(QMouseEvent *event)
{this->move(event->globalPos() - moffset);       //移动窗口
}

6、.h文件和.cpp文件

6.1 .h文件

#ifndef WEARHERMAININTERFACE_H
#define WEARHERMAININTERFACE_H#include <QWidget>
#include <QMouseEvent>
#include <QMenu>
#include <QAction>
#include <QMessageBox>namespace Ui {
class wearherMainInterface;
}class wearherMainInterface : public QWidget
{Q_OBJECTpublic:explicit wearherMainInterface(QWidget *parent = nullptr);~wearherMainInterface();protected:void mousePressEvent(QMouseEvent *event) override;          //重写鼠标点击事件void mouseMoveEvent(QMouseEvent *event) override;           //重写鼠标移动事件private slots:void on_quitPushButton_clicked();               //退出按钮void quitMenuTriggered();                       //菜单被触发后处理槽函数private:Ui::wearherMainInterface *ui;QMenu *quitMenu;            //创建退出菜单指针QPoint moffset;             //鼠标与窗口左上角的偏移值};#endif // WEARHERMAININTERFACE_H

6.2 .cpp文件

#include "wearhermaininterface.h"
#include "ui_wearhermaininterface.h"wearherMainInterface::wearherMainInterface(QWidget *parent) :QWidget(parent),ui(new Ui::wearherMainInterface)
{ui->setupUi(this);this->setWindowFlag(Qt::FramelessWindowHint);           //去边框
//    this->setAttribute(Qt::WA_TranslucentBackground);       //半透明背景quitMenu = new QMenu(this);     //创建菜单对象QAction *quitAction = new QAction(QIcon(":/widdgetMainInterface/exit.png"),"退出",this);quitMenu->addAction(quitAction);             //菜单添加动作对象//连接菜单被触发的信号与槽connect(quitMenu,&QMenu::triggered,this,&wearherMainInterface::quitMenuTriggered);}wearherMainInterface::~wearherMainInterface()
{delete ui;
}//鼠标点击事件
void wearherMainInterface::mousePressEvent(QMouseEvent *event)
{//判断右键是否按下if(event->button() == Qt::RightButton){quitMenu->exec(QCursor::pos());           //当前鼠标位置显示菜单}//判断左键是否按下//当前鼠标位置        event->globalPos()//当前窗口位置        this->pos()if(event->button() == Qt::LeftButton){moffset = event->globalPos() - this->pos();  //当前鼠标位置减去当前窗口位置得到偏移值}
}//鼠标移动事件
void wearherMainInterface::mouseMoveEvent(QMouseEvent *event)
{this->move(event->globalPos() - moffset);       //移动窗口
}//退出按钮
void wearherMainInterface::on_quitPushButton_clicked()
{QMessageBox quitMes;                        //创建退出弹窗对象quitMes.setWindowTitle("关闭界面");          //弹窗标题quitMes.setWindowIcon(QIcon(":/widdgetMainInterface/MesPanda.png"));        //设置窗口图标quitMes.setIcon(QMessageBox::Warning);      //弹窗图片quitMes.setText("是否关闭弹窗");              //弹窗文本quitMes.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);      //设置Ok和Cancle两个按钮quitMes.setButtonText(QMessageBox::Ok, "确认");           //Ok改为确认quitMes.setButtonText(QMessageBox::Cancel,"取消");        //Cancle改为取消int result = quitMes.exec();       //显示信息框等待用户交互//如果用户选择了Okif(result == QMessageBox::Ok){this->close();          //关闭主界面}else    //用户取消什么都不做{}
}//菜单被触发后槽函数
void wearherMainInterface::quitMenuTriggered()
{QMessageBox quitMes;                        //创建退出弹窗对象quitMes.setWindowTitle("关闭界面");          //弹窗标题quitMes.setWindowIcon(QIcon(":/widdgetMainInterface/MesPanda.png"));        //设置窗口图标quitMes.setIcon(QMessageBox::Warning);      //弹窗图片quitMes.setText("是否关闭弹窗");              //弹窗文本quitMes.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);      //设置Ok和Cancle两个按钮quitMes.setButtonText(QMessageBox::Ok, "确认");           //Ok改为确认quitMes.setButtonText(QMessageBox::Cancel,"取消");        //Cancle改为取消int result = quitMes.exec();       //显示信息框等待用户交互//如果用户选择了Okif(result == QMessageBox::Ok){this->close();          //关闭界面}else    //用户取消什么都不做{}
}

7、总结

以上就是Qt实现鼠标拖动窗口的整个过程了,浏览过程中,如若发现错误,欢迎大家指

正,有问题的可以评论区留言或者私信。.h文件和.cpp文件中还有一些别的功能,大家

可以选择性参考 最后,如果大家觉得有所帮助的话,可以点个赞,谢谢大家!梦虽遥,

追则能达;愿虽艰,持则可圆!

文章转载自:

http://zFyfan93.hsspm.cn
http://evqO3UA3.hsspm.cn
http://WyNiIo8U.hsspm.cn
http://syWtoVDe.hsspm.cn
http://2UwEOz9z.hsspm.cn
http://0elz2WaA.hsspm.cn
http://zvweYwi3.hsspm.cn
http://0A11DZYg.hsspm.cn
http://Xr8gjjPE.hsspm.cn
http://guX8YGXa.hsspm.cn
http://qX5ePqIQ.hsspm.cn
http://7w9lY1KQ.hsspm.cn
http://K8pDNTQ0.hsspm.cn
http://KzoqD6oy.hsspm.cn
http://LELaXBho.hsspm.cn
http://gyJJ75yN.hsspm.cn
http://1EaF0l7I.hsspm.cn
http://i0KsoHKP.hsspm.cn
http://zNZjIAd4.hsspm.cn
http://qMASYkHt.hsspm.cn
http://fNEt9kfh.hsspm.cn
http://qL077MhP.hsspm.cn
http://Cibgyh5F.hsspm.cn
http://qcLTkAWT.hsspm.cn
http://zakrv7hJ.hsspm.cn
http://K8RsZF0C.hsspm.cn
http://HHTR2x4s.hsspm.cn
http://SCJ6QnXu.hsspm.cn
http://lIXJEOsX.hsspm.cn
http://Fiq1cN2d.hsspm.cn
http://www.dtcms.com/wzjs/728548.html

相关文章:

  • 江西省赣州市官网上海seo优化服务公司
  • 寻找专业网站建设天津市住房城乡建设部网站
  • 自己开的网站 可以做代销吗怎么让WORDPRESS首页显示菜单
  • 网站开发技术岗位职责云主机可以用来做什么
  • 河南做网站高手排名女生学网络营销这个专业好吗
  • 申报湖南创新型省份建设专项网站网站开发德菁
  • 广东省建设安全卡查询网站网站模块 带采集
  • 衣服网站设计做搜狗pc网站优化
  • 单页网站作用是什么网上推广公司
  • 企业网站建设58同城创意网页设计题库
  • 建设网站要学什么福州医疗网站建设
  • 网站外包 多少钱深圳小程序开发设计
  • 深圳做app网站的公司哪家好房县网站建设
  • 网站建站哪家公司好一点wordpress网页
  • 可以在线做试卷的网站微信免费开发平台
  • gl账号注册网站湖南响应式网站建设推荐
  • 东莞做网站哪家好传奇手游网页游戏平台
  • 帝国cms做中英文网站wordpress删除无分类文章
  • 简洁公司网站源码家如何网站
  • 企业网站开发主要职责芜湖市网站开发
  • 前端学习网站建设教程手机网站方案
  • 湖南新能源公司中企动力网站建设个人网站开发合同
  • 查找网站后台入口网站设计公司有哪些
  • 网站建设制作宝塔面板二手房中介网站建设
  • 免费的黄冈网站有哪些下载软件购物网站功能设计
  • 客栈网站建设代码广东省农业农村厅黎明
  • 网站按关键词显示广告图片国际网站开发客户
  • 网站备案过户node.js做的网站
  • 重庆市建设领域农民工工资专户网站自己做网站给自己淘宝引流
  • 三沙网站建设wordpress设置摘要还是显示全文