crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> Массивы в сигналах/слотах
Алексей1153
  опции профиля:
сообщение 19.12.2011, 14:03
Сообщение #11


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


и что ? )))
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ssoft
  опции профиля:
сообщение 20.12.2011, 13:20
Сообщение #12


Участник
**

Группа: Участник
Сообщений: 130
Регистрация: 17.2.2010
Из: Москва
Пользователь №: 1470

Спасибо сказали: 30 раз(а)




Репутация:   3  


Цитата(urandom @ 13.12.2011, 22:46) *
Приветствую

Такой вот вопросик. Как можно через сигналы/слоты передать массив элементов с плавающей точкой (float)?
Советовали использовать QVector, но функция, которая отдает мне массив с QVector работать не может. А перекидывать все это из массива в QVector циклами как-то стремно (может есть другой вариант?). Да и медленно. Может объявить структуру с этим массивом и уже работать с ней? Будет ли это адекватным решением?
В общем нужно оптимальное и быстрое решение..


Я бы не стал использовать "голый" указатель, т.к. это чревато серьезными последствиями, если будет передача данных через очередь.
Использовал бы все-таки QVector или QByteArray.
Перевод массивов простых типов циклами - это, конечно, стрёмно, можно использовать memcpy();

float data[1024];
QVector< float > vec_data( sizeof( data ) / sizeof( float ) );
memcpy( vec_data.data(), data, sizeof( data ) );


float data[1024];
QByteArray vec_data( reinterpret_cast< char * >( data ), sizeof( data ) );


Если сигнал слот взаимодействие гарантировано только Qt::DirectConnection, то можно и указателем.

Сообщение отредактировал ssoft - 20.12.2011, 13:21
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V  < 1 2
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.11.2024, 7:21