Доброго времени суток ЛОР. Есть класс SQuare основнанный на QWidget. Он отвечает за отрисовку прямоугольников 8х8, вобщем доски на подобии шахмат. Вся отрисовка происходит в:
void Square::paintEvent(QPaintEvent *)
Теперь мне нужно отловить кликание мыши по какому-либо прямоугольнику и после того как кликнули мышью нарисовать линию в этом прямоугольнике.
Делаю:
void Square::mousePressEvent(QMouseEvent *e)
{
if (e->button() == Qt::LeftButton)
{
fields[(int)(e->x() / 40)][(int)(e->y() / 40)].checked = TRUE;
this->repaint();
}
}
fields - здесь массив прямоугольников 8x8. Отлавливать получается, но после того как произошло кликание ничего не рисуется.
В
void Square::paintEvent(QPaintEvent *)
есть следующий код:
if (fields[1][1].checked == TRUE)
{
painter_elipse.drawLine(1,1,20,20);
}
Допустим я запускаю программу, кликаю по прямоугольнику с индексом 1x1 , но ничего не происходит. Подскажите как быть. Как рисовать с помощью QPainter или еще чего по кликанию? Спасибо.