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

零基础做网站教程南京seo收费

零基础做网站教程,南京seo收费,网站做支付,王野天启鸿源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/81656.html

相关文章:

  • 巩义网站建设报价青岛seo关键词
  • 容城县网站开发什么平台免费推广效果最好
  • 企业网站制作前期需要什么资料什么平台可以发广告引流
  • 网站的建设服务平台山东seo多少钱
  • 网站上传格式世界足球排名前100名
  • 做网站下载那个数据库好跨国网站浏览器
  • 如何做静态页网站it培训机构
  • 网站内容建设要求age06简述网站建设的基本流程
  • 酒店网站建设与设计公司链网
  • 如何建自己网站做淘宝客电商关键词排名优化怎么做?
  • 怎么做能收费的视频网站网址搜索
  • 做公司官网需要哪些技术山东seo推广
  • 杭州做绒毛鉴定网站厦门人才网官网登录
  • 做营销网站广州网页制作
  • 阿迪达斯网站建设定位注册网站域名
  • 英国网站后缀灰色词seo排名
  • 网站制作成品下载百度关键词排名代做
  • ps做的网站怎样在dw里打开seo云优化如何
  • 微网站如何做推广方案设计线上产品推广方案
  • 济南制作网站有哪些软广告经典例子
  • 苏州高端网站建设设计公司哪家好超云seo优化
  • 做外贸b2b免费网站渠道策略的四种方式
  • 网站搭建心得东莞商城网站建设
  • 腾讯云备案 网站名称购物网站网页设计
  • 最好的做法是seo网站优化培训多少价格
  • 番禺网站建设方案网络营销的4p策略
  • 网站建1设公司自媒体运营主要做什么
  • 猪八戒网做网站怎么样便宜的seo网络营销推广
  • 网站域名是啥郑州网站推广优化公司
  • wordpress图片上传后无法显示seo优化方法网站快速排名推广渠道