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

吴江网站设计小广告公司如何起步

吴江网站设计,小广告公司如何起步,知名网站制作公司,广东住房和城乡建设厅官方网站mousePressEvent 和 eventFilter 里 event.pos 不一样,一定要注意 eventFilter里event.pos 直接返回相对于label左上角的坐标,就不要再mapFrom mousePressEvent 里event.pos 返回是相对于窗口左上角的坐标,需要用mapFrom返回label左上角的…

mousePressEvent 和  eventFilter 里 event.pos 不一样,一定要注意

eventFilter里event.pos 直接返回相对于label左上角的坐标,就不要再mapFrom

mousePressEvent 里event.pos 返回是相对于窗口左上角的坐标,需要用mapFrom返回label左上角的坐标


event->pos()  :  以图片的左上角为中心(0,0),右下角:(图片宽度,图片高度)

mapFrom : 相当于 ( -x'+event->pos().x,-y'+event->pos().y )  ,其中 x' 和 y ' 值请看下图


 

 


#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();bool eventFilter(QObject* watched, QEvent* event) override;void mousePressEvent(QMouseEvent* event) override;private:Ui::MainWindow *ui;void onMouse(QMouseEvent* event);
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QEvent>
#include <QMouseEvent>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);ui->label->setAttribute(Qt::WA_Hover);  // 确保 QLabel 能接收到鼠标移动事件ui->label->setMouseTracking(true); //鼠标移入label上移动就会触发MouseMove,去掉这行后,只有鼠标按下且移动才会触发ui->label->installEventFilter(this);
}MainWindow::~MainWindow()
{delete ui;
}// 添加事件过滤器处理鼠标事件
bool MainWindow::eventFilter(QObject* watched, QEvent* event)
{if (watched == ui->label) {if (event->type() == QEvent::MouseMove) {QMouseEvent* mouseEvent = static_cast<QMouseEvent*>(event);onMouse(mouseEvent);return true;}else if (event->type() == QEvent::Leave) {//qDebug()<<"li kai l";}}return QMainWindow::eventFilter(watched, event);
}void MainWindow::onMouse(QMouseEvent* event)
{// 将QLabel的坐标转换为图像坐标QPoint pos = ui->label->mapFrom(this, event->pos());  //eventFilter里不要用mapFrom,因为event.pos直接返回的就是相对于label左上角的qDebug()<<"onMouse event->pos() :"<<event->pos(); //直接返回相对于label左上角坐标qDebug()<<"onMouse mapFrom pos :"<<pos;
}
void MainWindow::mousePressEvent(QMouseEvent* event) {qDebug() << "mousePressEvent  event->pos :"<<event->pos(); //相对于窗口的左上角QPoint pos = ui->label->mapFrom(this, event->pos());qDebug() << "mousePressEvent mapFrom pos :"<<pos;//mapFrom将窗口左上角坐标转为相对于label左上角qDebug() << "mousePressEvent event->globalpos :"<<event->globalPos(); //显示屏窗口左上角}

globalPos是相对于 显示屏屏幕左上角的位置 ,注意是相对于显示屏屏幕


最后发现  

mousePressEvent 和  eventFilter 里 event.pos 不一样,一定要注意

event.pos 在eventFilter里 直接返回相对于label左上角的坐标,就不要再mapFrom

FR:徐海涛(hunkxu)

http://www.dtcms.com/wzjs/423270.html

相关文章:

  • 修改网站图标百度seo和sem
  • 暴雪战网官方网站入口厦门人才网官网
  • 青浦网络公司网站免费网站搭建
  • 网站建设伍金手指下拉8seo优化技巧
  • 平度疫情最新消息哈尔滨seo和网络推广
  • 网站反链一般怎么做网络营销中的seo是指
  • 网站排名提高免费顶级域名注册网站
  • 优秀平面设计网站百度总部在哪里
  • 手机网站哪些功能武汉做seo公司
  • 怎么做视频的网站搜索引擎推广一般包括哪些
  • sae wordpress 图片seo营销
  • 梧州网站建设制作女儿考试没圈关键词
  • 效果好企业营销型网站建设域名138查询网
  • 企业微营销网站发外链的平台有哪些
  • 打码网站做的比较好的是哪些app开发费用一般多少钱
  • 北京代做网站自媒体是如何赚钱的
  • 网站建设挣钱吗?网络营销策划ppt
  • 怎么做英文版的网站软件注册推广平台
  • wordpress 注册验证西安seo顾问培训
  • 广东省著名商标在什么网站做新闻最近的新闻
  • 桂林景区网站建设策划方案google下载app
  • 网站开发包括软件吗河北seo诊断培训
  • 设计比较好的电商网站自己如何制作一个网页
  • 没网站怎么做app怎么收录网站
  • 最近军事新闻大事品牌关键词排名优化怎么做
  • 长清区政府网站建设专业海外网站推广
  • 做外贸网站价格成都百度推广公司电话
  • 做模板网站的利与弊阿里云域名查询和注册
  • 营销型企业网站一般具有哪些功能聚名网域名
  • 小众做的好的网站做好的网站怎么优化