Добрый день. Необходимо сделать так, чтобы после срабатывания таймера через каждую секунду выполнялось некое действие. У меня есть свой класс, наследуемый от QGLWidget. Почему-то таймер не срабаывает. Подскажите пожалуйста, почему:
#ifndef MYGLWIDGET_H
#define MYGLWIDGET_H
#include <QGLWidget>
#include <QTimer>
class MyGLWidget : public QGLWidget
{
Q_OBJECT
public:
MyGLWidget();
private:
GLfloat iVertex[2][2]; //вектор координат луча
double alpha; //угол поворота луча радара
int intR; //радиус луча радара
QTimer turnTimer; //таймер для поворота луча радара
protected:
virtual void paintGL();
virtual void initializeGL();
virtual void resizeGL(int nWidth,int nHeight);
virtual void keyPressEvent(QKeyEvent* e);
void UpdateImage();
};
#endif // MYGLWIDGET_H
#include "myglwidget.h"
#include <QKeyEvent>
#include <math.h>
#include <QMessageBox>
#include <QString>
MyGLWidget::MyGLWidget()
{
alpha=90;
intR=50;
connect(&turnTimer, SIGNAL(timeout()), this, SLOT(updateImage()));
turnTimer.start(100);
}
void MyGLWidget::paintGL()
{
glClear(GL_COLOR_BUFFER_BIT);
glLineWidth(2.0);
glColor3f(1.0,0,0);
glBegin(GL_LINES);
glVertex2fv(iVertex[0]);
glVertex2fv(iVertex[1]);
glEnd();
}
void MyGLWidget::initializeGL()
{
qglClearColor(Qt::black);
iVertex[0][0]=50;
iVertex[0][1]=50;
iVertex[1][0]=50;
iVertex[1][1]=100;
}
void MyGLWidget::resizeGL(int nWidth,int nHeight)
{
glViewport(0,0,(GLint)nWidth,(GLint)nHeight);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0,100,0,100,0,100);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void MyGLWidget::UpdateImage()
{
QMessageBox::information(this, "OK","OK", QMessageBox::Yes);
alpha+=90;
iVertex[1][0]=intR*cos(alpha*3.14/180)+50;
iVertex[1][1]=intR*sin(alpha*3.14/180)+50;
updateGL();
}