C++ Qt/C++;不将QGraphicview显示为QWidget

C++ Qt/C++;不将QGraphicview显示为QWidget,c++,qt,draw,qgraphicsview,qwidget,C++,Qt,Draw,Qgraphicsview,Qwidget,我的项目由笛卡尔平面上的几何图形之间的操作组成。我将包括一个在每次操作后都必须更新的图形 这就是来源: 我已经创建了包装器“disigna”(:publicqwidget),因为我要将所有内容显示为单独的小部件(我有一个用于虚拟键盘的小部件,另一个用于Qlineedits等),我需要一个QWidget对象可以与view->addWidget(QWidget,int,int)一起使用,因为我无法直接传递QMainWindow对象 程序运行时没有错误,但没有绘制“hello world”(并且没有

我的项目由笛卡尔平面上的几何图形之间的操作组成。我将包括一个在每次操作后都必须更新的图形

这就是来源:

我已经创建了包装器“disigna”(:publicqwidget),因为我要将所有内容显示为单独的小部件(我有一个用于虚拟键盘的小部件,另一个用于Qlineedits等),我需要一个QWidget对象可以与view->addWidget(QWidget,int,int)一起使用,因为我无法直接传递QMainWindow对象

程序运行时没有错误,但没有绘制“hello world”(并且没有为istance QGraphicView创建空白)

我哪里做错了?

改变

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

按照现在的方式,
QGraphicView
的实例被分配到堆栈上,并在执行
disigna
构造函数后立即被销毁,这就是为什么您看不到它


别忘了释放内存。

谢谢,我太累了,忘了。它运行正常,但有两个窗口(一个像以前一样,另一个是带有QGraphicview istance的新窗口)。如何将此窗口作为QWidget包含在主布局中?已解决!这是将我的QGraphicView显示到QMainWindow disigna::disigna(QWidget父项):QWidget(父项){scene.addText(“19 11”);QGraphicsRectItem myrect=scene.addRect(QRectF(0,0,50,50),QPen(),QBrush());scene.setForegroundBrush(QBrush(QBrush::blue,Qt::CrossPattern));scene.addRect(QRectF(0,0700300));QGraphicsView*view=新的QGraphicsView(&场景,此);view->show();}再次感谢您现在我可以睡觉了(学习12小时!)
QGraphicsView * view = new QGraphicsView(&scene);
view->show();