QT图形视图框架中的scene与view坐标的相对应问题
来源:互联网 发布:北京资采数据挖掘 编辑:程序博客网 时间:2024/05/19 02:29
QGraphicsItem的坐标是相对于它的父Item的,如果该Item无父,那么它的父默认为scene,也就是说无父的Item坐标是相对于scene的,即该Item位于Scene的坐标系统中。
最近在使用图形视图框架的时候碰到一个Item的坐标与预想中不一样的问题。
首先设置窗体的Geometry为(100,100,800,500);
设置Scene的SceneRect为(100,100,500,300);
设置view的Geometry为(100,100,820,520);
然后创建一个无父SimpleTextItem添加到scene中,Item setPos为(100,100);
上代码:
m_scene=new QGraphicsScene(this); m_scene->setBackgroundBrush(Qt::gray); m_scene->setSceneRect(100,100,800,500);//pos 位置相对于 parent QGraphicsSimpleTextItem *simpleTextItem=new QGraphicsSimpleTextItem; simpleTextItem->setPos(100,100); simpleTextItem->setText("aaa"); m_scene->addItem(simpleTextItem); m_view=new QGraphicsView(this); m_view->setGeometry(100,100,820,520);//(100,100)是指view在窗体上的位置 m_view->setScene(m_scene);//设置后,view的(0,0)默认是scene的(0,0) m_view->show();
运行效果可以如图片所示,黄色的”aaa”是我用PS写上去的,因为我预想”aaa”应该会显示到这个黄色”aaa”所在的地方,然而真正的”aaa”却出现在了view的左上角。
这个问题的原因是什么呢?
答案是Scene的Geometry中的坐标对齐view的(0,0);
在这个例子中就是Scene的(100,100)对其view的(0,0),所以scene的(0,0)应该在view的左上距离(100,100)处,而Item的坐标系是相对于scene的,所以Item在Scene的(100,100)处,即View的(0,0)处.
阅读全文
0 0
- QT图形视图框架中的scene与view坐标的相对应问题
- Qt中的图形视图框架
- Qt Graphics View Framework 图形视图框架
- Qt Graphics View FrameWork图形视图框架
- Qt Graphics View Framework 图形视图框架
- Qt图形视图框架三--坐标系统简介
- QT图形视图框架(The Graphics View Framework in QT)
- QT图形视图框架
- QT图形视图框架
- Qt图形视图框架
- QT 图形视图框架
- QT图形视图框架
- QT图形视图框架(The Graphics View Framework)
- QT图形视图框架(The Graphics View Framework)
- 转载:QT图形视图框架(The Graphics View Framework)
- QT图形视图框架(The Graphics View Framework
- QT图形视图框架(The Graphics View Framework)
- QT图形视图框架(The Graphics View Framework)
- Spring Boot 快速入门
- PHP的AOP编程详解
- 波士顿美联储高级副总裁:分布式账本可能“从根本上改变”金融业
- Cannot call sendRedirect() after the response has been committed 解决方案
- java学习笔记
- QT图形视图框架中的scene与view坐标的相对应问题
- 唯快不破:如何理解python装饰器?
- flume-ng+Kafka+Storm+HDFS 实时系统搭建
- 2007以上版本破解方法:
- 服务器部署jdk,jre,tomcat,wamp,heidisql,eclipse
- AndroidStudiod的标准设置合集
- 机器人很快就有自我意识了?专家:首先具备潜意识 | 研究
- 交通天堂:未来城市如何为人与无人车设计街道? | 探索
- 薪水高涨!AI领域的人才争夺进入白热化阶段 | 精选