2016-12-03 7 views
1

void update(*p_1, *p_2, *p_3, *p_4, *scene)の機能をtimer()と接続するには、QObject::connectを使用しますか?QObject :: update()関数を使用してタイマーを接続

私が達成したいのは、ポインタを渡したオブジェクトを更新し、*scene->update()を呼び出して画面の内容を更新することです。

私はこのようになります更新機能持っている:

void update(*p_1, *p_2, *p_3, *p_4, *scene){ 
    // update functions 
    scene->update(); 
} 

をメインに、私が持っている:

int main(int argc, char **argv){ 
    // creating objects and calculations 
    view.show(); 
    QTimer timer; 
    QObject::connect(&timer, SIGNAL(timeout()), update(&o_1, ..., &scene)); 
    timer.start(1000); 
    return a.exec(); 
} 
+0

これは、行われることになっています方法です。http://doc.qt.io/qt-5/qtwidgets-graphicsview-collidingmice- example.html#the-main-function – user5292408

答えて

1

信号の機能の署名がではありません互換性。ドキュメントによると、それらを直接接続することはできないためです。
とにかく、あなたはそれを回避するためにラムダを使用することができます。

QObject::connect(&timer, SIGNAL(timeout()), [&](){ update(&o_1, ..., &scene); }); 
+0

問題は、タイマーと更新がクラスの一部ではないということでした。適切なクラスを作成した後、両方の問題はなくなりました。 – user5292408

関連する問題