PySide Binding Generation Tutorial: Module 1 Creating the foo library: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
(Change category "LanguageBindings::PySide::Shiboken::PySide Binding Generation Tutorial" -> "PySide")
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
'''English''' [http://qt-devnet.developpez.com/tutoriels/python/pyside/binding-shiboken/#LIII French] ''[qt-devnet.developpez.com]''


* '''Note:''' this article is a member of the multipart [http://developer.qt.nokia.com/wiki/Category:LanguageBindings::PySide::Shiboken::PySide_Binding_Generation_Tutorial PySide Binding Generation Tutorial] ''[developer.qt.nokia.com]''


=Creating the foo library=
[[Category:PySide]]
 
 
'''English''' [http://qt-devnet.developpez.com/tutoriels/python/pyside/binding-shiboken/#LIII French]
 
* '''Note:''' this article is a member of the multipart [https://wiki.qt.io/PySide_Binding_Generation_Tutorial PySide Binding Generation Tutorial]
 
= Creating the foo library =


This section presents the code and the build instructions for a very simple Qt-based library. The library will be used as the subject for this tutorial.
This section presents the code and the build instructions for a very simple Qt-based library. The library will be used as the subject for this tutorial.


==The Source Code==
== The Source Code ==


There is only one class in this '''foo''' library plus a <code>.pro</code> file which means that the build system used will be '''qmake''' based.
There is only one class in this '''foo''' library plus a <code>.pro</code> file which means that the build system used will be '''qmake''' based.
Line 13: Line 18:
Save the files below in a directory called '''libfoo'''. Be aware that this directory will be referenced by the binding Makefile presented in a later section of this tutorial. If you want to use other names or paths, remember to change the binding Makefile accordingly. Blind copy’n’paste shortens your life.
Save the files below in a directory called '''libfoo'''. Be aware that this directory will be referenced by the binding Makefile presented in a later section of this tutorial. If you want to use other names or paths, remember to change the binding Makefile accordingly. Blind copy’n’paste shortens your life.


===libfoo/foo.h===
=== libfoo/foo.h ===
 
<code>
#ifndef FOO_H
#define FOO_H
 
#include <QtCore>
 
class Math : public QObject
{
Q_OBJECT
public:
Math() {}
virtual ~Math() {}
int squared(int x);
};
#endif // FOO_H
</code>


===libfoo/foo.cpp===
=== libfoo/foo.cpp ===


===libfoo/foo.pro===
<code>
#include "foo.h"


To build the lib:<br />
int Math::squared(int x)
{
return x * x;
}
</code>


===Categories:===
=== libfoo/foo.pro ===


* [[:Category:LanguageBindings|LanguageBindings]]
<code>
** [[:Category:LanguageBindings::PySide|PySide]]
TEMPLATE = lib
* [[:Category:LanguageBindings::PySide::Shiboken|Shiboken]]
TARGET = foo
DEPENDPATH += .
INCLUDEPATH+= .
HEADERS += foo.h
SOURCES+= foo.cpp
</code>


* [[:Category:LanguageBindings::PySide::Shiboken::PySide Binding Generation Tutorial|PySide_Binding_Generation_Tutorial]]
To build the lib:
<code>
$ cd libfoo
$ qmake
$ make
</code>

Latest revision as of 05:06, 5 June 2016


English French

Creating the foo library

This section presents the code and the build instructions for a very simple Qt-based library. The library will be used as the subject for this tutorial.

The Source Code

There is only one class in this foo library plus a

.pro

file which means that the build system used will be qmake based.

Save the files below in a directory called libfoo. Be aware that this directory will be referenced by the binding Makefile presented in a later section of this tutorial. If you want to use other names or paths, remember to change the binding Makefile accordingly. Blind copy’n’paste shortens your life.

libfoo/foo.h

#ifndef FOO_H
#define FOO_H

#include <QtCore>

class Math : public QObject
{
 Q_OBJECT
public:
 Math() {}
 virtual ~Math() {}
 int squared(int x);
};
#endif // FOO_H

libfoo/foo.cpp

#include "foo.h"

int Math::squared(int x)
{
 return x * x;
}

libfoo/foo.pro

TEMPLATE = lib
TARGET = foo
DEPENDPATH += .
INCLUDEPATH+= .
HEADERS += foo.h
SOURCES+= foo.cpp

To build the lib:

$ cd libfoo
$ qmake
$ make