QGraphicsView::render() 适合用于打印屏幕快照(screenshots),缺省情况下它展示视图端口中的当前内容。 官方示例: 三、拖拽和碰撞检测 由于QGraphicsView 继承自 QWidget,所以 GraphicsView 同样提供了拖拽功能。此外,GraphicsView 框架也为场景、图元提供拖拽支持。当视图接收到拖拽事件,GraphicsView 框架会将拖拽事件...
使用QOpenGLWidget作为QGraphicsView的视口,子类化一个QGraphicsItem,在该子类中使用OpenGL绘制一个3D模型,并且使用QPainter绘制文字和椭圆。具体代码如下: #pragmaonce#include<QGraphicsView>classQGraphicsScene;classQGraphicsWidget;classGraphicsView:publicQGraphicsView{Q_OBJECTpublic:GraphicsView(QWidget*parent=nullptr...
随后建立的是OpenGLView,这个OpenGLView是来自于QGraphicsView的,它的初始化和其祖先的并无二致,随后一句非常重要:setViewport(),它的作用是将QGLWidget设置为OpenGLView的viewport,这样的话背景的rendercontext不再是rastercontext而是OpenGLcontext了,否则场景的背景还是需要用CPU渲染的,效率低下。接着是两段建立连接的代...
在drawBackground 函数中使用opengl画图1 void MYGraphicsView::drawBackground(QPainter *,const QRectF &) 2 { 3 glClearColor(1,1,1,1); 4 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 5 6 glMatrixMode(GL_PROJECTION); 7 glPushMatrix(); 8 glLoadIdentity(); 9 gluOrtho2D(0,1,0,...
首先,把QGLWidget绑定到QGraphicsView上,从而可以使用opengl进行渲染 1voidMYGraphicsView::setRenderGLWidget(QGLWidget *widget)2{3this->setViewport(widget);4this->setViewportUpdateMode(QGraphicsView::FullViewportUpdate);5} 1. 2. 3. 4. 5.
QGraphicsView为Graphics View框架提供了视图小部件,它可以可视化场景的内容。**可以为一个场景设置多个视图,用于对同一个数据提供不同的视口。而一个视图只能对应一个场景,后面设置的场景绘将前面的场景覆盖。**视图小部件是一个滚动区域,并提供滚动条用于在大型场景中导航。要启用OpenGL支持,可以通过调用QGraphicsView...
Qt在QGraphicsView中使⽤opengl不能够刷新的解决⽅案 症状 在QGraphicsView的事件中,不论使⽤ update,repaint,抑或updateScence,resetCacheContent,均不可以刷新界⾯ 程序⾥参考上⼀篇博⽂的⽅法,在QGraphicsView中使⽤了Opengl,即,把QGraphicsView的视⼝委托给QGLWidget来渲染参考资料 ⼀个...
class OpenGLView:public QGraphicsView,protected QOpenGLFunctions { Q_OBJECT public:OpenGLView(QWidget*pParent=0);virtual~OpenGLView(void);void setScene(GraphicsScene*pScene);publicslots:bool SwitchShader(const QString&shaderFileName);void SetLightPos(const QVector3D&lightPos=QVector3D());protected...
可以使用QGraphicsScene::render()函数在绘图设备上绘制场景。 三、QGraphicsView视图 QGraphicsView是视图窗口部件,使场景内容可视化,可以连接多个视图到一个场景,也可以为相同数据源的数据集提供不同的视图。QGraphicsView是可滚动的窗口部件,可以提供滚动条来浏览大的场景。如果需要使用OpenGL,可以使用QGraphicsView::...