2012-02-29 11 views
-1

Qtの新機能です。実行時にQGraphicsViewにポイントを描画する方法は、以前に描かれたポイントをクリアしないでください。私はタイマを使わずにポイントを描画する簡単なアプリケーションを実装しています。タイマーを使用してこれを更新したいと思います。これを行う方法?助けてください。実行時に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

平均は、ポイントを描きたいと思っています... – shofee

+0

つまり、それぞれの特定の間隔の後に、ポイント – shofee

+0

を描きたいと思います。以前の描画された点をクリアせずに毎秒GUIを更新する必要があります – indira

答えて

0

タイマーのスロットに描画ポイントのコードを記述します。

1

MainWindowクラスのメンバ変数としてシーン、ビュー、ペンを作成し、そのコンストラクタで初期化します。以下に示すようにMainWindow.cppでmain.cppに

MainWindow w; 

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

から

コールタイマー機能は、スロットを作成しました。

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

これで正常に動作します。

関連する問題