Имеется следующий(для примера) код:
#ifndef UPLOADER_H
#define UPLOADER_H
#include <QThread>
#include <QtNetwork>
#include <QtScript>
class Uploader : public QThread
{
Q_OBJECT
public:
Uploader(QObject* parent = 0);
~Uploader();
signals:
void returnMessage(QString status, QString message);
public slots:
void Stop();
protected:
void run();
QScriptValue connect(QScriptContext *context, QScriptEngine *engine);
private:
QTcpSocket socket;
QScriptEngine engine;
};
#endif
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include "uploader.h"
QScriptValue Uploader::connect(QScriptContext *context, QScriptEngine *engine)
{
QString host = context->argument(0).toString();
qint32 port = context->argument(1).toInt32();
qint32 timeout = context->argument(2).toInt32();
emit returnMessage("info", "function connect(" + host + ", " + QString("%1").arg(port) + ", " + QString("%1").arg(timeout) + ");");
socket.connectToHost(host, port);
if (!socket.waitForConnected(timeout * 1000))
{
emit returnMessage("error", socket.errorString());
return false;
}
return true;
}
Uploader::Uploader(QObject* parent)
{
QFile scriptFile("upload.js");
if (scriptFile.open(QIODevice::ReadOnly))
{
QString info = engine.evaluate(scriptFile.readAll(), "upload.js").toString();
}
else
{
emit returnMessage("error", "Внимание: ошибка открытия файла upload.js");
}
scriptFile.close();
QScriptValue fun1 = engine.newFunction(connect);
engine.globalObject().setProperty("connect", fun1);
}
Uploader::~Uploader()
{
}
void Uploader::Stop()
{
return;
}
void Uploader::run()
{
QScriptValue main = engine.evaluate("main");
QString info = main.call(QScriptValue()).toString();
return;
}
можно предположить что конфликтует с QObject::connect(...)
попробуйте поменять имя этой функции.
в примерах используются только статические и внешние функции..
наверное методы нельзя использовать таким образом.
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)