我是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();
答案 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)
在计时器的插槽中编写绘图点的代码。