crossplatform.ru

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

> QTestLib - добавление массивов в таблицу данных
Гость_Иван_*
сообщение 11.10.2010, 16:03
Сообщение #1





Гости








    


Здравствуйте!
Сталкнулся сегодня с такой проблемой - не получается добавить в таблицу данных статический массив(ы).
Хотел добавить указатель на первый элемент и количество элементов, при компиляции VS 2008 выдает ошибку: error C2039: qt_metatype_id: не является членом "QMetaTypeId<T>".
Использовал следующую команду: QTest::addColumn<int*>("arr");

Кто нибудь может уже сталкивался с подобным - подскажите решение, пожалуйста!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
igor_bogomolov
  опции профиля:
сообщение 14.10.2010, 23:10
Сообщение #2


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

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

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




Репутация:   29  


Цитата(Алексей1153 @ 14.10.2010, 23:57) *
a Q_OBJECT не забыл в своём классе ?
Q_OBJECT здесь ни при чём. Просто нужно зарегистрировать указатель на int как метатип
Q_DECLARE_METATYPE(int*)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Иван_*
сообщение 15.10.2010, 12:16
Сообщение #3





Гости








    


Цитата(igor_bogomolov @ 14.10.2010, 23:10) *
Цитата(Алексей1153 @ 14.10.2010, 23:57) *
a Q_OBJECT не забыл в своём классе ?
Q_OBJECT здесь ни при чём. Просто нужно зарегистрировать указатель на int как метатип
Q_DECLARE_METATYPE(int*)



Конечно, я так пробовал делать, пробовал также сначала typedef'ом переопределять int*, а потом уже регистрировать его как метатип:
typedef  int* ptr;
Q_DECLARE_METATYPE(ptr)


Visual Studio 2008 ругается: qt_metatype_id: не является членом "QMetaTypeId<T>"

Вот собственно упрощенный вариант *.h файла класса-тестировщика:
#include <QtTest>

class Test_MyMathFunction : public QObject
{
Q_OBJECT
private slots:
    void sumArrayt_data();
    void sumArrayt();
};

void Test_MyMathFunction::sumArrayt_data()
{
    QTest::addColumn<int>("arr");
    int arr[5] = {1, 3, 0, -2, 4};
    QTest::newRow("Test1") << 0;
}

void Test_MyMathFunction::sumArrayt()
{
    QFETCH(int, arr);
}

QTEST_MAIN(Test_MyMathFunction)
#include "main.moc"


Требуется создавать колонку и записывать туда не int, а int*, ну и соответственно, вместо нуля писать arr
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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




RSS Текстовая версия Сейчас: 22.12.2024, 11:49