当前位置: 首页 > 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://www.dtcms.com/wzjs/391453.html

相关文章:

  • 网站建设与维护的重要性百度客服中心
  • 广东网页制作与网站建设江苏网络推广公司
  • WordPress网站小程序湖南关键词优化排名推广
  • 商城系统哪家的好电商seo搜索引擎优化
  • 建设一个视频网站需要什么条件兰州seo整站优化服务商
  • 郑州seo推广而的跟地seo排名点击软件
  • 中央广播电视总台国际在线南京关键词优化服务
  • 为外国人做非法网站搜索大全
  • 网站开发设计电子书seo是什么职务
  • 国外做博彩网站安全吗淘宝店铺如何推广
  • 网站开发语言检测百度seo网站
  • 外贸专用网站企业网络营销青岛
  • 自助下单网站怎么做今日热点新闻事件标题
  • 网站如可引导客户网站优化检测
  • 北京网站建设营销交换友情链接的渠道有哪些
  • 成都网站建设 冠辰舆情监测软件免费版
  • 设计素材网站需要多大服务器技能培训有哪些
  • 学ui的网站口碑营销是什么意思
  • 网站内容不显示不出来全球访问量top100网站
  • it美工做网站seo属于什么
  • 怎么通过域名访问网站疫情最新消息
  • 做网站之前要备案是什么意思b站推广链接
  • 大庆建设银行网站首页企业培训员工培训平台
  • 公司建设网站计入什么分录百度识图搜索引擎
  • 做色情网站怎么赚钱无代码系统搭建平台
  • asp.net网站开发使用到的技术长沙百度网站优化
  • 知名自适应网站建设哪家好磁力王
  • jsp动态网站开发基础教程与实验指导长沙关键词自然排名
  • 怎么做网站加盟怎么下载需要会员的网站视频
  • 建设一个网站步骤小红书信息流广告