[PyQt] Scripting framework and licensing
dboddie at trolltech.com
Thu Feb 19 18:45:28 GMT 2009
On Thu Feb 19 10:55:59 GMT 2009, Ulrich Berning wrote:
> From paragraph 11 of the Qt commercial license agreement version 3.5
> (vii) Applications may not pass on functionality which in any way makes
> it possible for others to create software with the Licensed Software,
> however Licensee may use the Licensed Software's scripting functionality
> solely in order to enable scripting that augments the functionality of
> the Application(s) without adding primary and substantial functionality
> to the Application(s);
> IMHO this means:
> 1.) You have to ensure that nobody can use PyQt independent of your
> application. Take a look at the VendorID package on
> www.riverbankcomputing.com. Just installing Python/Qt/PyQt and your
> application script(s) on a target machine violates the Qt commercial
> 2.) It is allowed to use the Qt scripting framework in your application,
> but it is not allowed to use any other scripting framework (e.g.
Personally, I don't think that point 2 follows from the clause in the
agreement you quoted, though I can understand how the position of the
word "solely" in the phrase
... however Licensee may use the Licensed Software's scripting
functionality solely in order to enable scripting ...
might lead you to think that it says
"you can only use Qt Script (and no other solution) to make the application
but I would read it as meaning
"you can use Qt Script just for the purpose of making the application
scriptable (but you can't use Qt Script to write the application itself)"
I'm pretty certain that is the case, though the original poster should seek
clarification from Qt Software, of course.
There are both open and closed source applications out there that are
scripted with Python and expose PyQt to users. Presumably, the developers
of the closed source applications don't allow users to (easily) create new
applications using the components that they distribute, though I'm not sure
if they use VendorID for this purpose, or something else.
More information about the PyQt