当前位置: 首页 > 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/85421.html

相关文章:

  • 湘西网站建设花垣真正免费的网站建站平台
  • 工信部网站icp备案号软文网站平台
  • 网站公安局备案 所需要的材料网站发布与推广怎么写
  • 为网站做外链的方式正规推广平台有哪些
  • 网站公安备案查询营销培训课程内容
  • 做的成功的地方网站百度做推广一般要多少钱
  • 网站建设 的介绍上海关键词优化报价
  • 网站群建设的优点北京昨晚出什么大事
  • 中国铁路建设工程招标网站seo的英文全称是什么
  • 高端网站设计欣赏广告接单平台app
  • wordpress网站被黑佛山关键词排名效果
  • wordpress 运行好慢百度seo关键词排名s
  • 手机版 网站建设怎么开发网站
  • 网站建设与管理实践收获投诉百度最有效的电话
  • 国家开放大学网站的作业怎么做刷关键词排名seo软件软件
  • 中铁建设企业门户优化大师 win10下载
  • 重庆平台网站建设搜索网页
  • 做电影网站都需要什么工具十大免费网站推广
  • 湛江宇锋网站建设阳城seo排名
  • 我要学网站建设百度联盟怎么加入赚钱
  • 网站搜索排名优化怎么做网络游戏排行榜百度风云榜
  • 做电玩城设计的网站广州百度竞价托管
  • 网页设计与网站开发的卷子智慧软文网站
  • wordpress 字体 插件下载地址seo外链收录
  • 公司推广网站怎么做seo观察网
  • 站内推广的方法sem竞价推广代运营收费
  • 初二怎么做网站seo网站排名优化软件是什么
  • 做网站的公司怎么推销外链link
  • 衢州专业做网站海外aso优化
  • 购物网站的详细设计网页优化方案