QGLWidget 클래스의 멤버 인 timerEvent는 mousemove-function이 호출 될 때 트리거됩니다. 나는 이런 식으로 그것을 할 수 있다고 생각 :QGraphicsScene에서 QtimerEvent 사용
void OpenGLScene::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
int mousex = event->scenePos().x();
int mousey = event->scenePos().y();
if ((test->modus==2) && (test->move1 != -1))
{
p_list[test->move1].x=mousex-(1220);
p_list[test->move1].y=mousey-(610);
test->refresh = !(test->refresh);
test->timerEvent(???);
update();
}
}
를 어쨌든 나는 물음표가 어디에 투입해야할지 잘 모릅니다 :
void GLWidget::timerEvent(QTimerEvent *e)
{
if (e->timerId()==1 && refresh==true)
{
refresh = !refresh;
swapBuffers();
update();
}
}
그것은 다음과 같습니다. 나는 여러 가지 것을 시도했다. 그것은 작동하지 않습니다. timerId() = 1로 설정하고 싶습니다. 당신의 도움에 대한 감사합니다 ...
이유는 타이머 이벤트를 사용하려고 조금도? QObject의 타이머 이벤트 시스템은 일반적으로 시간 간격에 따라 주기적으로 코드를 실행하기위한 시스템입니다. 여기서 마우스를 움직일 때마다 코드를 실행하려고합니다. 또한 타이머 이벤트의 ID를 제어 할 수 없기 때문에 Qt가 타이머 이벤트의 ID를 관리합니다 ([QObject :: startTimer() 설명서] (http://doc.qt.nokia.com/4.7-snapshot/qobject 참조). html # startTimer)). – Chris