That works! Thanks a lot. As a follow-up question, I'm trying to figure out how I can use a list or tuple in a method signature, like "QtCore.Slot(list)". If I call that method from script and give it an array as parameter, I get an error message about incompatible types of arguments. How should I go about this?
--Jukka 2010/12/2 Hugo Parente Lima <[email protected]> > On Thursday 02 December 2010 13:32:00 Jukka Välimaa wrote: > > Hi all, > > > > I have a question about QScriptEngine. I want to insert objects that I > > define in python into script context so that their methods can be called > > from evaluated scripts. The problem I have right now is that properties > of > > these objects are not available in the script environment. > > > > From my reading of the documentation I concluded that it might be because > > I'm not running Q_Object macro. However, I don't know if there is a way > of > > replicating what that macro does while sticking to Python. > > QtScript can only access the properties found in the object meta-object and > to > export properties to the object meta-object you need to create them using > the > QtCore.Property function. e.g. > > class Foo (QtCore.QObject): > def getA(self): > return self._a; > def setA(self, value): > self._a = value > > a = QtCore.Property(getA, setA) > > > An alternative way to do this would be to populate the object with > function > > properties one by one. Unfortunately, it seems like QScriptEngine API is > > missing newFunction-method. > > This is a missing feature, it hasn't implemented yet because newFunction > expects a C function pointer and the binding can't create C function at > runtime, however we can silent use QScriptEngine::FunctionWithArgSignature > and > use the additional void pointer to do some voodoo and make it work and > functional. > > In other words... file a bug about it =] > > > Does anybody have any suggestion about what I could do to run methods > from > > python objects I insert into script environment? > > Set those methods as slot using the @Slot decorator, so they will be > registered into the object QMetaObject and QtScript will see them. > > > Regards, > > Jukka Välimaa > > -- > Hugo Parente Lima > INdT - Instituto Nokia de Tecnologia >
_______________________________________________ PySide mailing list [email protected] http://lists.openbossa.org/listinfo/pyside
