如何在运行时绘制指向QGraphicsView而不清除先前绘制的点?

时间:2012-02-29 05:44:37

标签: qt qt4

我是Qt的新手,如何在运行时绘制点到QGraphicsView而不清除以前的绘制点?我实现了一个简单的应用程序,它不使用计时器绘制点。我想用计时器更新这个。这该怎么做?请帮忙。

     QApplication a(argc, argv);
     QGraphicsScene scene(0,0,640,480);
     QGraphicsView view(&scene);
     QPen pen(Qt::black);
     int x = 0;
     int y = 0;

     double rad = 1;
     while(y < 640)
     {
        scene.addEllipse(x-rad, y-rad, rad*2.0, rad*2.0, QPen(), QBrush(Qt::SolidPattern));
        x++;
        y++;
     }

    view.show();
    return a.exec();

2 个答案:

答案 0 :(得分:1)

创建场景,视图和笔作为MainWindow类的成员变量,并在其构造函数中初始化。

从main.cpp调用计时器功能

    MainWindow w;

    QTimer timer;
    QObject::connect(&timer, SIGNAL(timeout()), &w, SLOT(updateStatus()));
    timer.start(0);

在MainWindow.cpp中创建了一个插槽,如下所示。

void MainWindow::updateStatus()
{
    m_scene->addLine(m_x,m_y,m_x,m_y,*m_pen);
    m_x++;
    m_y++;
}

现在它运作正常。

答案 1 :(得分:0)

在计时器的插槽中编写绘图点的代码。