PDA

View Full Version : Qt script signal handler



asvil
17th April 2010, 11:42
Library and qt script plugin to create signals in qt script.

Repository with wiki http://gitorious.org/qtscriptsignalhandler/

With this library you can create|connect signals in qt script environment. Also you can connect signal, which created in qt script, in c++ code.

From wiki:
In qt script:

SignalBaseClass = function() {
this.test = "signalBaseClass";
this.baseSignal = signal();
this.intSignal = signal();
};
SignalBaseClass.prototype.emitBaseSignal = function() {
this.baseSignal.emit("emitBaseSignal from " + this.test);
};
SignalBaseClass.prototype.emitBaseSignal2 = function() {
this.baseSignal.emit("emitBaseSignal2 from " + this.test);
};
SignalBaseClass.prototype.emitBaseIntSignal = function() {
this.intSignal.emit(123);
};


In other qt script:

testSlot = function() {
print("testSlot arguments count: " + arguments.length);
for (var i = 0; i < arguments.length; ++i)
print("testSlot first argument: " + arguments[i]);
};
baseObject = new SignalBaseClass();
baseObject.intSignal.connect(testSlot);

In cpp code:

// Load translation file
QTranslator trans;
trans.load("qtscriptsignalhandler_" + QLocale::system().name(), QLibraryInfo::location(QLibraryInfo::TranslationsP ath));
app.installTranslator(&trans);

QLineEdit lineEdit4(0);
lineEdit4.setWindowTitle("4C++ LineEdit");
lineEdit4.show();

qScriptConnect(engine.globalObject().property("baseObject"), "baseSignal", &lineEdit4, SLOT(setText(QString)));