Marble/MarbleDesigner

From KDE TechBase
Marble Qt Designer Plugin: Look Mom, No Code!
Tutorial Series   Marble Widget Plugin for Qt Designer
Previous   Qt Designer
What's Next   n/a
Further Reading   n/a

The Marble Widget Plugin for Qt Designer

Compiling the MarbleWidget Plugin

The Marble Widget is also offered as a Qt Designer plugin. If you compile Marble yourself you probably need to enable the compilation of the Qt Designer plugin.

First you need to locate Qt Designer plugins directory. Let's say it is ~/QtSDK/plugins/designer

If your source directory is "~/marble" and your build directory is "~/marble_build" then you can enable compilation of the Qt Designer plugin via the cmake call:

cmake -DQTONLY=OFF -DWITH_DESIGNER_PLUGIN=ON -DQT_PLUGINS_DIR=~/QtSDK/plugins ../marble


Choose "-DQTONLY=ON" as a parameter if you don't have KDE installed. Once you have compiled Marble using "make" you can install everything using "make install". This should install the file

MarbleWidgetPlugin.so


into Qt's designer plugin directory (please check this in case things don't work out). If you compile the Qt-Only version then the file name is called libMarbleWidgetPlugin.so.

Once you start Qt Designer you should spot a new "Marble Desktop Globe" category in the widget box on the left:


On Windows you must keep in mind that your MarbleWidget.dll must be in the PATH when the designer executable is called. Otherwise the marble plugins will result in a loading error.

Using the MarbleWidget Plugin

You can use this Marble Widget just like all other widgets inside Qt Designer: Once you have started Qt Designer you can choose a new form from the ready-made templates (e.g. a QWidget). Now you can just drag and drop the Marble Widget from the widget box onto your form:



Alternatively we also provide other widget plugins that allow controlling the Marble Widget: e.g. the navigation widget plugin and the latitude-longitude widget plugin.

The map properties of the Marble Widget can be adjusted in the Property Editor on the right: all properties get assigned and displayed immediately on the map without having to press the "Preview" menu entry.



There are two ready-made examples available inside the example directory of the Marble source code:

marble/examples/example1.ui
marble/examples/example2.ui


The file example2.ui nicely demonstrate how signals and slots work with the MarbleWidget:



You can preview the widget by choosing "Preview" from the "Form" menu. Inside the preview it's possible to pan and zoom the map. Of course the signal-slot connections can be tested inside the preview as well.