Я хочу сделать математический редактор, используя qtscript.
Он будет поддерживать вычисление массива в скрипте. Например, массив1 + массив2 = массив3. ({1,2,3} + {3,4,5} = {4,6,8});
Может быть, мне нужно переопределить оператор +,
Я обращаюсь к примеру QByteArray и переопределяю оператор +, но когда я выполняю в Script, его нельзя вызвать, кто-нибудь может дать мне несколько советов?
bytearray.h
class ByteArrayClass : public QObject, public QScriptClass
{
public:
QByteArray &operator+(int n);
}
main.cpp
int main(int argc, char **argv)
{
QCoreApplication app(argc, argv);
QScriptEngine eng;
ByteArrayClass *baClass = new ByteArrayClass(&eng);
eng.globalObject().setProperty("ByteArray", baClass->constructor());
eng.evaluate("ba = new ByteArray(4))"
eng.evaluate("ba+2;"); //this will not invoke override operator+.
ByteArrayClass *ba = new ByteArrayClass(&eng);
int n = 3;
*ba + n; //but this can invoke the override operator+
}
Если это невозможно реализовать, возможно, единственный способ - заменить весь оператор на пользовательскую функцию.