Russian Qt Forum
Ноябрь 23, 2024, 22:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [Решено] Проблема с переданным массивом  (Прочитано 4417 раз)
PulSar.CE3194694
Гость
« : Август 09, 2010, 11:38 »

Добрый день!
Не знаю, как решить эту проблему. В Главном Окне создал массив Array типа QPointF и вписал в него координаты. Далее через сигналы/слоты передал указатель на него в некоторый виджет MyWidget. Теперь в этом виджете в одном из слотов хочу координаты x и y умножить соответственно на коэффициенты K1 и K2 (созданы в этом виджете). Вопрос как это сделать? Думал получится так, но выдает ошибку: base operand of "->" has non-pointer type "QPointF".
Код:
for(i=0; i<N; i++)
{
     Array[i]=QPointF(Array[i]->x()*K1, Array[i]->y()*K2);
}
Или если также в цикле писать нечто вроде такого: Array->x() = Array->x()*K1, то также будет ошибка.((
« Последнее редактирование: Август 24, 2010, 15:49 от PulSar.CE3194694 » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Август 09, 2010, 11:47 »

Код:
for (i = 0; i < N; i++)
{
     Array[ i ].rx() *= K1;
     Array[ i ].ry() *= K2;
}
« Последнее редактирование: Август 09, 2010, 12:19 от Igors » Записан
Joss
Гость
« Ответ #2 : Август 09, 2010, 11:49 »

: массив Array типа QPointF

Массив объектов или указателей на объекты? Судя по "Array=QPointF..." я не вижу здесь указателей.
Записан
PulSar.CE3194694
Гость
« Ответ #3 : Август 09, 2010, 12:10 »

Igors, через точку тоже не получается, пишет такое: lvalue required as left operand of assignment.
Joss, делаю так:
В заголовочном файле Г.О. есть: QPointF *Array;
В одном из слотов Г.О. есть: Array = new QPointF[N];
В заголовочном файле Г.О. есть сигнал: void MySignal(QPointF *Array);
В одном из слотов Г.О. отправляется сигнал: emit MySignal(Array);
А в виджете:
void MyWidget::MySlot(QPointF *Array)
{
   //...Здесь нужно умножить координаты.
}
Записан
PulSar.CE3194694
Гость
« Ответ #4 : Август 09, 2010, 12:11 »

Массив из объектов.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #5 : Август 09, 2010, 12:20 »

Igors, через точку тоже не получается, пишет такое: lvalue required as left operand of assignment.
Ну значит rx (ry) - подправил
Записан
PulSar.CE3194694
Гость
« Ответ #6 : Август 09, 2010, 12:28 »

Igors, через точку тоже не получается, пишет такое: lvalue required as left operand of assignment.
Ну значит rx (ry) - подправил
Спасибо, получилось!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 22.