Qt QGraphicscence在添加表单后保持空白
我想在QMainWindow上绘图:到目前为止,我已经设置了一个简单的项目,并在构造函数中输入了一些代码。QGraphicsView显示一个空白画布。我还需要做什么才能使我的图形可见Qt QGraphicscence在添加表单后保持空白,qt,Qt,我想在QMainWindow上绘图:到目前为止,我已经设置了一个简单的项目,并在构造函数中输入了一些代码。QGraphicsView显示一个空白画布。我还需要做什么才能使我的图形可见 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); QGraphicsScene scene(0,0,800,60
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QGraphicsScene scene(0,0,800,600);
this->view.setScene(&scene);
this->setCentralWidget(&view);
scene.addText("Hello, world!");
QPen pen(Qt::green);
scene.addLine(0,0,200,200,pen);
scene.addEllipse(400,300,100,100,pen);
//make a point:
double rad = 1;
scene.addEllipse(10-rad, 10-rad, rad*2.0, rad*2.0,pen,QBrush(Qt::SolidPattern));
scene.update();
view.show();
}
qgraphicscene场景
是main窗口
构造函数的局部变量。一旦构造函数结束,变量将被销毁,这将导致视图尝试访问场景时出现未定义的行为。你的程序可能会崩溃
使其成为
main窗口
类的成员变量,并在构造函数中使用new
进行初始化。或者至少尝试一下qgraphicscene*scene=newqgraphicscene(0,0800600,this)
,当main窗口
被破坏时,它将被Qt删除。oouch。我以为在我将场景添加到视图中后,它将保持活动状态。指向它的指针将在您经过它后保持不变,但实际对象将被销毁。Qt不能覆盖自动变量的C++内存管理。