Difference between revisions of "Projects/Marble/MarbleCPlusPlus"

Jump to: navigation, search
(Hello Marble!)
(Hello Marble!)
Line 15: Line 15:
 
The Marble API allows for a very easy integration of a map widget into your application.  
 
The Marble API allows for a very easy integration of a map widget into your application.  
  
Let's prove that with a tiny "Hello world"-like example. We just create a [http://api.kde.org/4.x-api/kdeedu/marble/classMarble_1_1MarbleWidget.html MarbleWidget] object and show it:
+
Let's prove that with a tiny '''Hello world'''-like example. We just create a [http://api.kde.org/4.x-api/kdeedu/marble/classMarble_1_1MarbleWidget.html MarbleWidget] object and show it:
  
 
<code cppqt>
 
<code cppqt>
Line 54: Line 54:
 
Here's a little checklist to tackle some problems that might arise when compiling the code above:
 
Here's a little checklist to tackle some problems that might arise when compiling the code above:
  
* You need Qt and '''Marble development''' packages (or comparable SVN installations)
+
* You need Qt and '''Marble development packages''' (or comparable SVN installations)
 
* If ''Qt headers'' are not installed in '''/usr/include/qt4''' on your system, change the path in the g++ call above accordingly.
 
* If ''Qt headers'' are not installed in '''/usr/include/qt4''' on your system, change the path in the g++ call above accordingly.
 
* Likewise, '''add -I /path/to/marble/headers''' if they're not to be found in /usr/include
 
* Likewise, '''add -I /path/to/marble/headers''' if they're not to be found in /usr/include
 
}}
 
}}

Revision as of 08:44, 7 July 2010


Editing Projects/Marble/MarbleCPlusPlus

Hello Marble
Tutorial Series   Marble C++ Tutorial
Previous   C++, Qt
What's Next   Tutorial 2 - MarbleWidget: Changing basic map properties
Further Reading   n/a


Hello Marble!

The Marble API allows for a very easy integration of a map widget into your application.

Let's prove that with a tiny Hello world-like example. We just create a MarbleWidget object and show it:

  1. include <QtGui/QApplication>
  2. include <marble/MarbleWidget.h>

using namespace Marble;

int main(int argc, char** argv) {

   QApplication app(argc,argv);
   // Create a Marble QWidget without a parent
   MarbleWidget *mapWidget = new MarbleWidget();
   // Load the OpenStreetMap map
   mapWidget->setMapThemeId("earth/openstreetmap/openstreetmap.dgml");
   mapWidget->show();
   return app.exec();

}

Save the code above as my_marble.cpp and compile it:

g++ -I /usr/include/qt4/ -o my_marble my_marble.cpp -lmarblewidget -lQtGui

If things go fine, execute ./my_marble and you end up with a fully usable OpenStreetMap application:

My hello.png

Ktip.png
 
Tip
Here's a little checklist to tackle some problems that might arise when compiling the code above:
  • You need Qt and Marble development packages (or comparable SVN installations)
  • If Qt headers are not installed in /usr/include/qt4 on your system, change the path in the g++ call above accordingly.
  • Likewise, add -I /path/to/marble/headers if they're not to be found in /usr/include

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal