Опят вопрос касаемо перехода с Дельфи на С++:
есть
struct SetMapCenter
{
qreal cLat;
qreal cLon;
uint cX;
uint cY;
uint r;
};
и объявлена в классе переменная
class MapWindow : public QObject
{
...
SetMapCenter m_MapC;
при вызове ф-ции класса я ее инициализирую
void MapWindow::paintMap(QPainter &p, SetMapCenter c)
{
if(m_MapC.cLat != c.cLat || m_MapC.cLon != c.cLon)
{
m_MapC = c;
if(m_MapC.cLat > -89)
latlonToXY(90.0, 0.0, m_NorthPole.rx(), m_NorthPole.ry());
else
{
m_NorthPole.rx() = m_cX;
m_NorthPole.ry() = m_cY - m_r;
}
createMap();
}
p.drawImage(QPoint(0, 0), *m_Image);
}
Понятно, это нужно для того, чтоб если параметр не изменился - не перерисовывать Image, а просто вывести его.
Запускаю, проверяю - при очередном вызове значения m_MapC "сбрасываются". Вопрос - почему? В Дельфи такой код работает без проблем!