crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

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


Последние 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 Текстовая версия Сейчас: 28.3.2024, 21:00