Qt를 사용하여 일부 과학적 데이터를위한 OpenGL 시각화 프로그램을 작성하려고합니다. 내 기존 프로그램을 변경하지 않고 간단하게 glwidget을 호출하고 각 시간 단계가 끝날 때 데이터를 업데이트 할 수있게하고 싶습니다. 그러나 Qt 프로그램을 실행하기 위해서는 QApplication
을 사용하고 나서 qt.run()
을 사용하여 CPU를 차단해야합니다. 여기 OpenGL 및 Qt로 과학적 시각화
QThread
에 내 기존의 모든 코드를 넣어이 업데이 트에 연결 할 때마다 그 신호를 보내 수 있다는 것을 깨닫게 의사 코드
main()
{
..set up stuff
myVisualizer = new myGLWidget();
for(int i=0;i<1000;i++)
{
..do calculations
myVisualizer.update(new data)
}
}
입니다. 이 방법이 더 쉬울 것입니다. 아무도이 문제를 해결하는 방법을 알고 있습니까?
타이머를 사용하여 답변을 Upvoted 나는 그것을 할 방법입니다. 별도의 스레드가 필요 없습니다. 그러나 다시 그리기 슬롯에 단일 샷 타이머가 필요없고 위젯이 QGLWidget이 아닌 QDialog의 하위 클래스 인 이유는 알 수 없습니다. – Troubadour