Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Динамический вызов ф-ции в QT Script
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Script. Интеграция WebKit
JohnZ
Всем Здравия !

Задаю вопрос повторно, по совету админа, т.к. предыдущий ответ утерян ...

Проблема в следующем, - есть в скрипте функции CalcVO1(), CalcVO2(), CalcVO3(), ...
Как можно вызвать эти ф-ции по имени в переменной ?

В и-нете нашёл аналогичный вопрос (и ответ !), ...

http://www.sql.ru/forum/879788/js-vyzov-fu...ni-v-peremennoy

но ответ был дан для web-а, и в QT Script он почему-то не работает :unsure:

На скрине окно отладчика QT Script с демонстрацией проблемы на вызове тестовой ф-ции ...

В принципе половинчатое решение есть, с пом-ю С++

Раскрывающийся текст

void MainWindow::callFunc(QString ffName, int fnum)
{
QString fName = QString("%0%1").arg(ffName).arg(fnum);
if (engine->globalObject().property(fName).isValid())
engine->globalObject().property(fName).call();
}

... но тогда придётся _параметры_ вызова делать глобальными в скрипте, что некузяво :(

Заранее благодарен за помощь.
lanz
В qscript можно использовать просто this вместо window для глобального объекта (по моему я так писал :lol:)
JohnZ
Спасибо Lanz ! Рещено !
Я не заметилЪ точку после THIS и поэтому не работало !!!

Раскрывающийся текст


function CalcVO1() { }

function CalcVO2() { }

function CalcVO3() { }

//////////////////////////////////////

var Num = 1;

this['CalcVO' + Num ]();

Num = 2;

this['CalcVO' + Num ]();



PS: 2 Admin
Как в заголовке ТЕМЫ поставить "РЕШЕНО" ???
ViGOur
Цитата(JohnZ @ 29.6.2017, 12:21) *
Как в заголовке ТЕМЫ поставить "РЕШЕНО" ???
Можно просто закрыть тему, у автора тмы на это есть права!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.