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);
};
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);
};
To copy to clipboard, switch view to plain text mode
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);
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);
To copy to clipboard, switch view to plain text mode
In cpp code:
// Load translation file
app.installTranslator(&trans);
lineEdit4.setWindowTitle("4C++ LineEdit");
lineEdit4.show();
qScriptConnect
(engine.
globalObject().
property("baseObject"),
"baseSignal",
&lineEdit4,
SLOT(setText
(QString)));
// Load translation file
QTranslator trans;
trans.load("qtscriptsignalhandler_" + QLocale::system().name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
app.installTranslator(&trans);
QLineEdit lineEdit4(0);
lineEdit4.setWindowTitle("4C++ LineEdit");
lineEdit4.show();
qScriptConnect(engine.globalObject().property("baseObject"), "baseSignal", &lineEdit4, SLOT(setText(QString)));
To copy to clipboard, switch view to plain text mode
Bookmarks