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

网站开发技术 下载搜索引擎营销成功案例

网站开发技术 下载,搜索引擎营销成功案例,织梦网站图标,彩票网站制作开发目录 1. 获取图元在场景中的位置 对于 QGraphicsEllipseItem(点图元) 2. 从 QMap 获取所有点坐标 3. 响应点击事件获取坐标 4. 获取选中点的坐标 5. 坐标转换说明 注意事项 在 Qt 图形视图框架中,从 QGraphicsItem(特别是点…

目录

1. 获取图元在场景中的位置

对于 QGraphicsEllipseItem(点图元)

2. 从 QMap 获取所有点坐标

3. 响应点击事件获取坐标

4. 获取选中点的坐标

5. 坐标转换说明

注意事项

在 Qt 图形视图框架中,从 QGraphicsItem(特别是点图元)获取坐标有多种方式,取决于你需要的是场景坐标、视图坐标还是图元自身的局部坐标。

1. 获取图元在场景中的位置

对于 QGraphicsEllipseItem(点图元)

// 假设 item 是你的 QGraphicsEllipseItem 指针
if (QGraphicsEllipseItem* pointItem = qgraphicsitem_cast<QGraphicsEllipseItem*>(item)) {// 获取图元中心点在场景中的坐标QPointF scenePos = pointItem->scenePos();// 或者获取包围矩形的中心QRectF rect = pointItem->rect();QPointF centerInItem = rect.center();QPointF centerInScene = pointItem->mapToScene(centerInItem);qDebug() << "场景坐标:" << scenePos;qDebug() << "精确中心坐标:" << centerInScene;
}

2. 从 QMap<int, QGraphicsEllipseItem*> 获取所有点坐标

QMap<int, QGraphicsEllipseItem*> pointMap; // 你的点图元容器// 遍历获取所有点坐标
for (auto it = pointMap.constBegin(); it != pointMap.constEnd(); ++it) {int id = it.key();QGraphicsEllipseItem* item = it.value();QPointF scenePos = item->scenePos();QRectF rect = item->rect();QPointF center = item->mapToScene(rect.center());qDebug() << "点ID:" << id << "场景坐标:" << center;// 如果需要视图坐标(像素坐标)QPoint viewPos = mGraphicsView->mapFromScene(center);qDebug() << "视图坐标:" << viewPos;
}

3. 响应点击事件获取坐标

// 在场景子类中重写鼠标事件
void MyGraphicsScene::mousePressEvent(QGraphicsSceneMouseEvent* event) {QGraphicsScene::mousePressEvent(event); // 先让基类处理选择逻辑// 获取点击位置的图元QGraphicsItem* item = itemAt(event->scenePos(), QTransform());if (item && (item->type() == QGraphicsEllipseItem::Type)) {QGraphicsEllipseItem* ellipse = static_cast<QGraphicsEllipseItem*>(item);QPointF center = ellipse->mapToScene(ellipse->rect().center());qDebug() << "点击了点图元,中心坐标:" << center;}
}

4. 获取选中点的坐标

// 获取当前选中的所有点图元坐标
QList<QPointF> getSelectedPointsCoordinates() {QList<QPointF> coordinates;foreach (QGraphicsItem* item, mScene->selectedItems()) {if (item->type() == QGraphicsEllipseItem::Type) {QGraphicsEllipseItem* ellipse = static_cast<QGraphicsEllipseItem*>(item);coordinates.append(ellipse->mapToScene(ellipse->rect().center()));}}return coordinates;
}

5. 坐标转换说明

Qt 图形视图框架有三级坐标系:

  • 图元局部坐标:相对于图元自身的坐标系

  • 场景坐标:所有图元共用的全局坐标系

  • 视图坐标:窗口部件的像素坐标系

常用转换方法:

// 局部坐标 → 场景坐标
QPointF scenePos = item->mapToScene(localPos);// 场景坐标 → 视图坐标
QPoint viewPos = graphicsView->mapFromScene(scenePos);// 视图坐标 → 场景坐标
QPointF scenePos = graphicsView->mapToScene(viewPos);

注意事项

  1. 如果图元有旋转或缩放,直接使用 scenePos() 可能不准确,建议使用 mapToScene(rect.center())

  2. 确保在获取坐标前图元已被添加到场景中

  3. 对于非常精确的坐标需求,考虑设置图元的 CacheMode 为 DeviceCoordinateCache

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

相关文章:

  • 西安知名的集团门户网站建设费用今日新闻摘抄10条简短
  • 网站弹出广告的是怎么做的重庆百度快照优化
  • 国家企业信用信息公示系统官网站小程序开发哪家更靠谱
  • 电商网站建设服务站外推广方式
  • 如何给异地网站做镜像自己的app如何接广告
  • 做视频网站要什么主机太原做网站哪家好
  • 如何做制作头像的网站线下广告投放渠道都有哪些
  • 门窗卫浴网站建设整站优化 mail
  • 做网站怎么引用字体seo优化排名服务
  • 企业品牌网站有哪些昆明网络营销
  • 网站建设域名注册熊掌号seo诊断分析
  • 仙居做网站在哪里做百度搜索页面
  • 简述网站开发的步骤郑州外贸网站推广
  • 学校网站建设介绍推广游戏怎么拉人最快
  • 幼儿园主题网络图设计 大班优化课程体系
  • 网站和新媒体建设管理办法搜索热词排行榜
  • 达建网站防止爬虫的办法网络营销人员招聘
  • 普通电脑怎么做网站服务器外国网站怎么进入
  • 网站验证码文件韩国搜索引擎排名
  • 怎样做一个好的网站暴风seo论坛
  • 在线建设网站seo综合查询工具可以查看哪些数据
  • 网站建设服务有哪些内容自己如何制作一个网页
  • 做旅游海报哪个网站好免费的微信推广软件哪个好
  • 弥勒建设局网站石家庄疫情最新情况
  • 网站建设浙江公司沈阳专业seo关键词优化
  • 专门做资产负债表结构分析的网站微信软文是什么意思
  • 妇女网站建设方案网站排名优化制作
  • 桂林城乡建设局网站seo推广排名软件
  • 基于h5的移动网站开发广州seo网站推广公司
  • 做网站的公司首选智投未来白酒营销策划方案