Marble/MarblePython

    From KDE TechBase
    Revision as of 20:57, 29 June 2011 by Neverendingo (talk | contribs) (Text replace - "</code>" to "</syntaxhighlight>")


    Editing Projects/Marble/MarblePython

    Hello Marble
    Tutorial Series   Marble Python Tutorial
    Previous   Python, Qt
    What's Next   Tutorial 2 - Marble's GeoPainter
    Further Reading   n/a


    Hello Marble!

    Marble offers KDE-Python bindings. A small hello world example is available as part of the Marble sources at

    marble/examples/python/simple_marble.py
    


    The Marble API allows a very easy integration of a map widget into your application. Let's prove that with some python code:


    #!env python
    #
    # Copyright 2008 Simon Edwards <[email protected]>
    #
    # This program is free software; you can redistribute it and/or
    # modify it under the terms of the GNU General Public License as
    # published by the Free Software Foundation; either version 2 of 
    # the License, or (at your option) any later version.
    #
    # This program is distributed in the hope that it will be useful,
    # but WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    # GNU General Public License for more details.
    #
    # You should have received a copy of the GNU General Public License
    # along with this program.  If not, see <http://www.gnu.org/licenses/>.
    #
    # A very simple example of how to use the marble widget.
    
    from PyQt4.QtCore import *
    from PyKDE4.kdeui import *
    from PyKDE4.kdecore import *
    from PyKDE4.marble import *
    import sys
    
    class MainWin (KMainWindow):
        def __init__ (self, *args):
            KMainWindow.__init__ (self)
            self.resize(640, 480)
    
            self.marble = Marble.MarbleWidget(self)
            self.marble.setMapThemeId("earth/bluemarble/bluemarble.dgml")
            self.setCentralWidget(self.marble)
            self.marble.centerOn(5.8333, 51.8333)
            self.marble.zoomView(2000)
    
    def main():
        appName     = "simple_marble"
        catalog     = ""
        programName = ki18n ("default")
        version     = "1.0"
        description = ki18n ("Simple Python Marble Example")
        license     = KAboutData.License_GPL
        copyright   = ki18n ("(c) 2008 Simon Edwards")
        text        = ki18n ("none")
        homePage    = "www.simonzone.com"
        bugEmail    = "[email protected]"
    
        aboutData   = KAboutData (appName, catalog, programName, version, description,
                                  license, copyright, text, homePage, bugEmail)
    
        aboutData.addAuthor (ki18n("Simon Edwards"), ki18n("Developer"))
        
        KCmdLineArgs.init(sys.argv, aboutData)
        
        app = KApplication()
        mainWindow = MainWin(None, "main window")
        mainWindow.show()
        app.connect(app, SIGNAL ("lastWindowClosed ()"), app.quit)
        app.exec_()
    
    main()