##// END OF EJS Templates
fixed example for 2.0 API, factory example still not working...
florianlink -
r152:d0d61419dda4
parent child
Show More
1 NO CONTENT: modified file
@@ -1,38 +1,38
1 from PythonQt import *
1 from PythonQt.example import *
2 2
3 3 print "alternative 1 : CustomObject wrapped by decorators"
4 4
5 5 # create a new object
6 6 custom = CustomObject("John","Doe")
7 7
8 8 # print the object (to see how it is wrapped)
9 9 print custom
10 10
11 11 # print the methods available
12 12 print dir(custom)
13 13
14 14 # set a name
15 15 custom.setFirstName("Mike")
16 16 custom.setLastName("Michels")
17 17
18 18 # get the name
19 19 print custom.firstName() + " " + custom.lastName();
20 20
21 21 print
22 22 print "alternative 2 : CustomObject2 wrapped by factory"
23 23
24 24 # create a new object
25 25 custom2 = CustomObject2("John","Doe")
26 26
27 27 # print the object (to see how it is wrapped)
28 28 print custom2
29 29
30 30 # print the methods available
31 31 print dir(custom2)
32 32
33 33 # set a name
34 34 custom2.setFirstName("Mike")
35 35 custom2.setLastName("Michels")
36 36
37 37 # get the name
38 38 print custom2.firstName() + " " + custom2.lastName();
@@ -1,84 +1,84
1 1 /*
2 2 *
3 3 * Copyright (C) 2010 MeVis Medical Solutions AG All Rights Reserved.
4 4 *
5 5 * This library is free software; you can redistribute it and/or
6 6 * modify it under the terms of the GNU Lesser General Public
7 7 * License as published by the Free Software Foundation; either
8 8 * version 2.1 of the License, or (at your option) any later version.
9 9 *
10 10 * This library is distributed in the hope that it will be useful,
11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 13 * Lesser General Public License for more details.
14 14 *
15 15 * Further, this software is distributed without any warranty that it is
16 16 * free of the rightful claim of any third person regarding infringement
17 17 * or the like. Any license provided herein, whether implied or
18 18 * otherwise, applies only to this software file. Patent licenses, if
19 19 * any, provided herein do not apply to combinations of this program with
20 20 * other software, or any other product whatsoever.
21 21 *
22 22 * You should have received a copy of the GNU Lesser General Public
23 23 * License along with this library; if not, write to the Free Software
24 24 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25 25 *
26 26 * Contact information: MeVis Medical Solutions AG, Universitaetsallee 29,
27 27 * 28359 Bremen, Germany or:
28 28 *
29 29 * http://www.mevis.de
30 30 *
31 31 */
32 32
33 33 //----------------------------------------------------------------------------------
34 34 /*!
35 35 // \file PyGuiExample.cpp
36 36 // \author Florian Link
37 37 // \author Last changed by $Author: florian $
38 38 // \date 2007-04
39 39 */
40 40 //----------------------------------------------------------------------------------
41 41
42 42 #include "PythonQt.h"
43 43 #include "gui/PythonQtScriptingConsole.h"
44 44 #include "CustomObjects.h"
45 45
46 46 #include <QApplication>
47 47
48 48 int main( int argc, char **argv )
49 49 {
50 50 QApplication qapp(argc, argv);
51 51
52 52 PythonQt::init(PythonQt::IgnoreSiteModule | PythonQt::RedirectStdOut);
53 53
54 54 PythonQtObjectPtr mainContext = PythonQt::self()->getMainModule();
55 55 PythonQtScriptingConsole console(NULL, mainContext);
56 56
57 57 // -----------------------------------------------------------------
58 58 // Alternative 1: make CustomObject known and use decorators for wrapping:
59 59 // -----------------------------------------------------------------
60 60
61 61 // register the new object as a known classname and add it's wrapper object
62 PythonQt::self()->registerCPPClass("CustomObject", "","", PythonQtCreateObject<CustomObjectWrapper>);
62 PythonQt::self()->registerCPPClass("CustomObject", "","example", PythonQtCreateObject<CustomObjectWrapper>);
63 63
64 64 // -----------------------------------------------------------------
65 65 // Alternative 2: make CustomObject2 known and use a wrapper factory for wrapping:
66 66 // -----------------------------------------------------------------
67 67
68 68 // add a factory that can handle pointers to CustomObject2
69 69 PythonQt::self()->addWrapperFactory(new CustomFactory());
70 70
71 71 // the following is optional and only needed if you want a constructor:
72 72 // register the new object as a known classname
73 PythonQt::self()->registerCPPClass("CustomObject2");
73 PythonQt::self()->registerCPPClass("CustomObject2", "", "example");
74 74 // add a constructor for CustomObject2
75 75 PythonQt::self()->addClassDecorators(new CustomObject2Constructor());
76 76
77 77 mainContext.evalFile(":example.py");
78 78
79 79 console.appendCommandPrompt();
80 80 console.show();
81 81
82 82 return qapp.exec();
83 83 }
84 84
General Comments 0
You need to be logged in to leave comments. Login now