crossplatform.ru

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


  Ответ в Вопрос по QtScript и массивам ?
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
AntonTatu Дата 5.3.2009, 17:44
 
Цитата(BRE @ 5.3.2009, 16:16) *
args << arr;


СПАСИБО ОГРОМНОЕ ВСЕ РАБОТАЕТ !!
BRE Дата 5.3.2009, 16:16
 
args << arr;
AntonTatu Дата 5.3.2009, 16:11
 
Цитата(BRE @ 5.3.2009, 15:40) *
vec.setProperty( j, MyMassive[i][j] );


в общем начало сделать получилась вот так что бы заработало:
QScriptEngine engine;
QScriptValue arr = scriptEngine->newArray( 10 );
for( int i = 0; i < 10; ++i )
{
    QScriptValue vec = scriptEngine->newArray( 10 );
    for( int j = 0; j < 10; ++j ){
         
        QScriptValue temp(&engine, (*MyMassive)[i][j]); 
        vec.setProperty( j, temp );  
          }

    arr.setProperty( i, vec );
}


но теперь ругается на:

args << QScriptValue( &engine, arr );

ошибка: Ни одна из 9 перегрузок не может преобразовать все типы аргументов, как здесь исправить ?
BRE Дата 5.3.2009, 16:06
 
vec.setProperty( j, QScriptValue( scriptEngine, (*MyMassive)[ i ][ j ] ) );
AntonTatu Дата 5.3.2009, 16:00
 
Цитата
vec.setProperty( j, (*MyMassive)[i][j] );


да я так писал то же причем в коде

QScriptEngine engine;


(*MyMassive)[0][0] = 3;    //---- это работает нормально

//написано ниже

QScriptValue arr = scriptEngine->newArray( 10 );
for( int i = 0; i < 10; ++i )
{
    QScriptValue vec = scriptEngine->newArray( 10 );
    for( int j = 0; j < 10; ++j )
        vec.setProperty( j, MyMassive[i][j] );  // в этом месте ошибка компиляции error c2664 невозможно преобразовать параметр 1 из 'int' в 
         // 'const QString &' Ни один конструктор не смог принять исходный тип, либо разрешение перегру
         // зки конструктора неоднозначно

    arr.setProperty( i, vec );
}

еще один момент в место scriptEngine->newArray я использую engine->newArray
BRE Дата 5.3.2009, 15:40
 
Цитата(AntonTatu @ 5.3.2009, 15:37) *
огромное спасибо за помощь, только все равно не компилируется пишет ошибку в строчке:
vec.setProperty( j, MyMassive[i][j] );


vec.setProperty( j, (*MyMassive)[i][j] );
AntonTatu Дата 5.3.2009, 15:37
  Гость_BRE, огромное спасибо за помощь, только все равно не компилируется пишет ошибку в строчке:
vec.setProperty( j, MyMassive[i][j] );
где ошибка ?

повторюсь, массив MyMassive создаю вот так:
std::vector < std::vector <char> > *MyMassive;
MyMassive = new std::vector < std::vector <char> >(10, std::vector<char> 10);

для того что бы его заполнить вызываю его вот так:
for( int i = 0; i < 10; ++i )
{
    for( int j = 0; j < 10; ++j )
       (*MyMassive)[i][j] = 5;


спасибо заранее...
BRE Дата 5.3.2009, 13:44
 
Цитата(AntonTatu @ 5.3.2009, 13:29) *
а что теперь с этим делать ? как это будет работать в функции ?
QScriptValue fun = engine.evaluate("function(a, B ){return a+b;}");


QScriptValue fun = scriptEngine.evaluate("function( arr ) { return arr[ 4 ][ 6 ]; }");
QScriptValueList args;
args << QScriptValue( &scriptEngine, arr );
QScriptValue threeAgain = fun.call( QScriptValue(), args );
AntonTatu Дата 5.3.2009, 13:29
 
Цитата(BRE @ 5.3.2009, 12:37) *
QScriptValue arr = scriptEngine->newArray( 10 );
for( int i = 0; i < 10; ++i )
{
    QScriptValue vec = scriptEngine->newArray( 10 );
    for( int j = 0; j < 10; ++j )
        vec.setProperty( j, MyMassive[i][j] );

    arr.setProperty( i, vec );
}


а что теперь с этим делать ? как это будет работать в функции ?
QScriptValue fun = engine.evaluate("function(a, B ){return a+b;}");
BRE Дата 5.3.2009, 12:37
 
QScriptValue arr = scriptEngine->newArray( 10 );
for( int i = 0; i < 10; ++i )
{
    QScriptValue vec = scriptEngine->newArray( 10 );
    for( int j = 0; j < 10; ++j )
        vec.setProperty( j, MyMassive[i][j] );

    arr.setProperty( i, vec );
}
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 9.7.2025, 16:10