QGraphicsView::QGraphicsView(QWidget *parent =nullptr)QGraphicsView::QGraphicsView(QGraphicsScene *scene, QWidget *parent =nullptr) parent:父控件,用于管理 QGraphicsView 的内存。 scene:要显示的场景。 主要属性 scene:获取或设置 QGraphicsView 显示的场景。 matrix...
*/voidMapGraphicsView::wheelEvent(QWheelEvent*event){QGraphicsView::wheelEvent(event);if(m_future.isRunning())// 判断是否在运行{return;}if(event->angleDelta().y()>0)// 放大{if(m_keyIndex<m_mapItemGroups.count()-1){m_keyIndex++;}}else{if(m_keyIndex>0){m_keyIndex--;}}loatImage...
当视图接收到拖拽事件,GraphicsView 框架会将拖拽事件翻译为 QGraphicsSceneDragDropEvent 事件,再发送到场景,场景接管事件,再把事件发送到光标下接受拖拽的第一个图元。 为了在场景中获取拖拽事件,你需要重新实现QGraphicsScene::dragEnterEvent() 和在 QGraphicsItem 的子类里任何与你特定场景需要的事件处理器。items ...
如果要使用OpenGL,可以使用QGraphicsView::setViewport()函数来添加QGLWidget 。 2.1 缩放与旋转 在前面项目基础上,我们添加处理类,代码如下: #ifndef MYVIEW_H #define MYVIEW_H #include <QGraphicsView> #include <QWheelEvent > class MyView : public QGraphicsView { public: MyView(); protected: void w...
如果设置 setDragMode()的参数为QGraphicsView::RubberBandDrag,那么可以在视图上使用 鼠标拖出橡皮筋框来选择图形项。 默认的QGraphicsView提供了一个QWidget作为视口部件,如果要使用OpenGL进行植染,可以调用QGraphicsView::setViewport()设置QOpenGLWidget作为视口。QGraphicsView会获取视口部件的拥有权(ownership)。
默认情况下,QGraphicsView 为视口窗口小部件提供常规 QWidget。您可以通过调用viewport()来访问此小部件,也可以通过调用setViewport()来替换它。 要使用 OpenGL 进行渲染,只需调用setViewport(新的 QOpenGLWidget)。QGraphicsView拥有视口小部件的所有权。 QGraphicsView 使用 QTransform 支持仿射变换。最常见的两种转换是...
为此,从 QGraphicsView 继承定义一个类 QwGraphicsView,实现 mouseMoveEvent() 事件和 mousePressEvent() 事件,并把鼠标事件转换为信号,这样就可以在主程序里设计槽函数响应这些鼠标事件。 二、使用 (一)自定义 QwGraphicsView 继承 QGraphicsView QwGraphicsView定义如下: ...
Qt的图形视图框架,最核心的三个类为:QGraphicsScene、QGraphicsItem与QGraphicsView。 高级白板软件框架Demo QGraphicsScene 描述 QGraphicsScene类提供了一个用于管理大量二维图形项的面。 该类用作QGraphicsItems的容器。它与QGraphicsView一起用于在二维面上可视化图形项,例如线条、...
下面是一个例子: class View:;public QGraphicsView { Q_OBJECT //….. public slots: void zoomIn() {scale(1.2,1.2);} void zoomOut() {scale(1/1.2,1/1.2);} void rotateLeft() {rotate(-10);} void rotateRight() {rotate(10);} }; 这些槽应与QToolButtons联接,并使autoRepeat有效。当对...
下面是一个例子: class View:;public QGraphicsView { Q_OBJECT //….. public slots: void zoomIn() {scale(1.2,1.2);} void zoomOut() {scale(1/1.2,1/1.2);} void rotateLeft() {rotate(-10);} void rotateRight() {rotate(10);} }; 这些槽应与QToolButtons联接,并使autoRepeat有效。当对...