提高QGraphicsItem移动效率的解决方案
来源:互联网 发布:xls文件解密软件 编辑:程序博客网 时间:2024/05/21 22:29
需求:
我在QGraphicsView上面new出了10000多个Item,需要对视图做整体的移动和缩放。
qt替我们实现了移动和缩放的功能,就是不好找。。
解决:
一、
对单个的Item移动需要鼠标移动事件,2步设置:
1、setFlags(ItemIsSelectable | ItemIsMovable);
2、void mouseMoveEvent(QMouseEvent* event)
{
QGraphicsView::mouseMoveEvent(event);
}
二、
对整体Item的移动
我原来的做法效率很慢,原来的思路是把所有的Item放进一个组内,对组实现上面的鼠标移动。
正确的做法是:
QGraphicsView::setDragMode(QGraphicsView::ScrollHandDrag); //将鼠标变成小手,这样就能拖动了
QGraphicsView::setInteractive(false);//是否能够选中单独的Item
备注:在写demo的时候,如果只写几个Item,是看不出移动效果的,需要大量的item
int xx = 0;
for (int i = -11000; i < 11000; i += 110) {
++xx;
int yy = 0;
for (int j = -7000; j < 7000; j += 70) {
++yy;
qreal x = (i + 11000) / 22000.0;
qreal y = (j + 7000) / 14000.0;
QGraphicsLineItem *item = new QGraphicsLineItem(10, 10, 20, 20);
item->setPos(QPointF(i, j));
this->scene()->addItem(item);
}
}
- 提高QGraphicsItem移动效率的解决方案
- QGraphicsItem 对象鼠标移动
- 如何提高企业数据归档解决方案的效率
- [Android] 提高ORMLite插入大量数据效率的解决方案
- Qt中移动QGraphicsItem的注意问题,path的闭合
- 提高数据库的效率
- 提高会议的效率
- 提高程序的效率
- 提高你的效率
- ListView的效率提高
- 提高工作的效率
- 如何提高multiple 多选列表框的大量数据移动到另一个列表框效率
- [iOS] 推荐几个提高移动应用开发效率的第三方服务
- 【效率】提高PHP的执行效率
- QGraphicsItem 的坐标问题
- QGraphicsItem的坐标问题
- 常见的QGraphicsItem
- 自己实现的qgraphicsitem
- 1477:Box of Bricks
- ExtJs3.4简介
- 三十分钟掌握STL
- 制作能够引导多个ISO的U盘
- 详述 SQL Server 补丁安装常见问题
- 提高QGraphicsItem移动效率的解决方案
- proteus仿真51单片机存在的若干问题
- 解耦的故事(转tmfc blog)
- 数据结构与算法之—数组(一)
- spring两个重要属性lazy-init和abstract
- MFC CListCtrl的用法.Style/插入、删除、选中数据及排序问题等
- android中使用2D动画 — SurfaceView 转载
- (莱昂氏unix源代码分析导读-37) 文件系统与inode
- 责任连模式