[PySide] shiboken - wrapping function inside a namespace
iaio tom
iaiotom at hotmail.com
Fri Jul 25 18:19:23 CEST 2014
Hi Ryan, thank you.
At the end I found a solution,
to not generate the namespace as a class I've just added the generate="no" tot he namespace and I've create a simple header that wrap all the global function that I want bind like
// globalFunctionsWrapper.h
#include <fooInit.h>
void initFoo()
{
::Foo::initFoo();
}
//global.h
#include <globalFunctionsWrapper.h>
#include <FooClasses.h>
// .xml
<?xml version="1.0" encoding="utf-8"?>
<typesystem package="MyPkg">
<function signature="initFoo()"/>
<namespace-type name="Foo" generate = "no">
<object-type name="FooClass"/>
<object-type name="FooClass1"/>
</namespace-type>
</typesystem>
Cheers
Alan
Subject: Re: [PySide] shiboken - wrapping function inside a namespace
From: rymg19 at gmail.com
Date: Tue, 15 Jul 2014 17:25:48 -0500
To: iaiotom at hotmail.com; pyside at qt-project.org
I don't have a solution, but I can say that you're not the only one who gets bugged by that problem. From what I know, Qt itself has no namespace, so the PySide binding implementation doesn't have a solution.
iaio tom <iaiotom at hotmail.com> wrote:
Hi,
I've started to use shiboken to bind my cpp lib to python and I have a couple of questions related to the namespaces.
So from what I've seen if a use a namespace in .xml file definition, shiboken will create a class with the same name and it will use this class as namespace.
But, there is a way to bind a function ro a class that in my cpp code is in a namespace to a global function or class without namespace in python?
for example in my cpp code
namespace Foo
{
void initFoo();
}
in shiboken the only way I found to export this function is this:
.xml file
<?xml version="1.0" encoding="utf-8"?>
<typesystem package="MyPkg">
<namespace-type name="Foo">
<function signature="initFoo()"/>
</namespace-type>
</typesystem>
if I try something like this it doens't work:
<typesystem package="MyPkg">
<function signature="initFoo()"/>
</typesystem>
or
<typesystem package="MyPkg">
<function signature="Foo::initFoo()" rename="initFoo"/>
</typesystem>
anyone know if there is a solution to this problem?
Thank you
Alan
PySide mailing list
PySide at qt-project.org
http://lists.qt-project.org/mailman/listinfo/pyside
--
Sent from my Android phone with K-9 Mail. Please excuse my brevity.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/pyside/attachments/20140725/e2852ed1/attachment.html>
More information about the PySide
mailing list