Как нарисовать точку для QGraphicsView во время выполнения без очистки предыдущих нарисованных точек? - PullRequest
0 голосов
/ 29 февраля 2012

Я новичок в 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 ]

1 голос
/ 29 февраля 2012

Создает сцену, вид и перо как переменные-члены класса 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++;
}

Теперь все работает нормально.

0 голосов
/ 29 февраля 2012

Напишите свой код для рисования точек в слоте таймера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...