QGraphicsView用法总结

  • QGraphicsView用以展示QGraphicsScene对象
  • QGraphicsView可以展示QGraphicsScene的全部,也可以展示其一部分
  QGraphicsScene scene;
  scene.addText("Hello, world!");

  QGraphicsView view(&scene);
  view.show();

设置视图中间点

centerOn();

确保某一点在视图中可见

ensureVisible();

默认视图大小

QGraphicsScene::itemsBoundingRect();

手动设置视图大小

setSceneRect();

设置显示风格

包括:
- 设置显示区大小
- 设置显示提示

  QGraphicsScene scene;
  scene.addRect(QRectF(-10, -10, 20, 20));

  QGraphicsView view(&scene);
  view.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
  view.show();

改变视图窗口所在的QWidget

  • QGraphicsView拥有对窗口的所有权
  • 访问QWidget
viewport()
  • 替换QWidget(用OpenGL)
setViewport()

图像变换

  • 旋转、缩放、转化(根据横纵坐标)
rotate(qreal angle);
scale(qreal sx, qreal sy);
translate(qreal dx, qreal dy);
shear(qreal sh, qreal sv);//剪切

键盘、鼠标控制

  • 因为继承了 QGraphicsSceneEvent 类
  • 选中、拖拽视图中的某一项
//响应开关
setInteractive(bool allowed)

自定义控制响应

  • 继承 QGraphicsView
  • 重写鼠标和键盘 事件响应器
  • Qt提供了 mapToScene() 和 mapFromScene() 用来视图中,点与点,点与区域,区域与区域之间的映射。

你可能感兴趣的:(Qt,Qt图像视图框架)