Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Language Bindings
  4. Pyside + QtMobility Location module on maemo SDK [solved]
QtWS25 Last Chance

Pyside + QtMobility Location module on maemo SDK [solved]

Scheduled Pinned Locked Moved Language Bindings
6 Posts 2 Posters 3.5k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • U Offline
    U Offline
    ultimodruido
    wrote on last edited by
    #1

    Hello everybody,
    I'm using pyside to play around with the location module in the maemo SDK. unfortunately I don't get what I want. :)

    I did install from extra-devel the following packages:
    python-pyside 1.0.3-1maemo2
    python-qtmobility 0.2.0-maemo11
    libqtm-12-dev 1.2.0-0fn-frematle3

    the problem occurs when in the program I try to create the QGeoServiceProvider in order to start the QGraphicsGeoMap.
    @ def __init__my_map(self):
    self.my_service_provider = Location.QGeoServiceProvider("nokia")
    self.my_mapping_manager = self.my_service_provider.mappingManager()
    self.my_mapview = Location.QGraphicsGeoMap (self.my_mapping_manager, self)
    self.my_mapview.connectivityModeChanged(Location.QGraphicsGeoMap.HybridMode)@

    Anyway this is the error message:
    @self.my_service_provider = Location.QGeoServiceProvider("nokia")@

    I did a @print dir(Location)@ and here is the result:
    @['QGeoAreaMonitor', 'QGeoCoordinate', 'QGeoPositionInfo', 'QGeoPositionInfoSource', 'QGeoSatelliteInfo', 'QGeoSatelliteInfoSource', 'QNmeaPositionInfoSource', '_Cpp_Api', 'doc', 'file', 'name']@

    it seems that pyside is not aware of everything that the location module knows... I'm sure I have QtMobility 1.2 because I could execute the QML mapviewer demo without any problem.
    I've noticed that the pyside Qtmobility documentation refers to a version 0.2.2. Does everyone know if may be my problem is related to the fact that pyside is only at the vesion 0.2.0?
    If "Yes" I think I have just to wait until the new version is released... if "no" is there a way to force pyside to connect to the qtmobility 1.2?

    Thank you very much... have a nice weekend
    Nicola

    1 Reply Last reply
    0
    • R Offline
      R Offline
      renato.filho
      wrote on last edited by
      #2

      Could you report this on pyside bugzilla[1], we will check during the next week. Thanks

      [1] http://bugs.pyside.org/

      1 Reply Last reply
      0
      • U Offline
        U Offline
        ultimodruido
        wrote on last edited by
        #3

        Hello Renato!
        Thanks for your reply... I didn't have time yesterday to fill the bug. I will play again with python tomorrow afternoon and fill a detail bug with what I did discover (I did try more to solve the issue and discovered something else..)
        I wasn't expecting to find a bug, I was more considering a wrong configuration from my side :)
        Have a nice day
        Nicola

        1 Reply Last reply
        0
        • U Offline
          U Offline
          ultimodruido
          wrote on last edited by
          #4

          Hello
          just for info, here is the bug report link
          http://bugs.pyside.org/show_bug.cgi?id=917

          I've just noticed that in the first post I missed actually the error message :) sorry, here it is:

          @self.my_service_provider = Location.QGeoServiceProvider("nokia")
          AttributeError: 'module' object has no attribute 'QGeoServiceProvider'@

          And just for info here the error message that I receive while trying to load QtMobility 1.2 pugling within QDeclarativeView (instruction taken from "this link":http://www.developer.nokia.com/Community/Wiki/Latest_Qt_and_Qt_mobility_evaluation_on_Maemo

          @class MainWindow(QtDeclarative.QDeclarativeView):

          def __init__(self, parent=None):
              super(MainWindow, self).__init__(parent)
              self.setWindowTitle("test QML")
              self.engine().addImportPath('/opt/qtm12/imports')
              self.engine().addPluginPath('/opt/qtm12/plugins')
              self.setSource(QtCore.QUrl.fromLocalFile('qml/maemodrive/mapviewer.qml'))@
          

          the error is while loading the modules:
          @file:///home/maemo/MyDocs/Qt_stuff/maemodrive/qml/maemodrive/mapviewer.qml:2:2:
          plugin cannot be loaded for module "QtMobility.location": Cannot load library
          /targets/FREMANTLE_X86/opt/qtm12/imports/QtMobility/location/libdeclarative_location.so:
          (/targets/FREMANTLE_X86/opt/qtm12/imports/QtMobility/location/libdeclarative_location.so:
          undefined symbol: _ZNK10QtMobility13QGeoMapObject10metaObjectEv)
          import QtMobility.location 1.2
          ^ @

          a detailed description is given into the bugreport.
          Nicola

          1 Reply Last reply
          0
          • U Offline
            U Offline
            ultimodruido
            wrote on last edited by
            #5

            Hi Renato,
            I have a couple of question that maybe you can help me with:
            I've been trying this also on the N900 available on the "remote device access" service from Nokia with the same result. The location module is reduced. Reading in the net I did discover that in N900 the QtMobility 1.2 is installed in parallel to the original given by nokia (1.0.2) That's why I guess pyside doesn't connect to the 1.2 version of qtmobility but to the official one.
            In maemo forum they said that you need something like
            @LD_LIBRARY_PATH=/opt/qtm12/lib yourexecutable@ to point to the new libraries. So my questions are:

            1. Do you know a method there I can check the QtMobility version with pyside? Something like:
              @print QtCore.qVersion()
              print QtCore.version@
              but that will return QtMobility instead of QtCore version?

            2. In case it points to the official QtMobility release, is there a way to change this? Using
              @LD_LIBRARY_PATH=/opt/qtm12/lib python2.5@ didn't work :(

            Thanks a lot for your help
            Nicola

            1 Reply Last reply
            0
            • U Offline
              U Offline
              ultimodruido
              wrote on last edited by
              #6

              Hi all,
              I think I did find a partial solution.
              the nokia N900 has QtMobility 1.0.2 officially installed with the PR1.3 update. Through the pachages libqtm-11-dev or libqtm-12-dev is it possible to install the QtMobility 1.1 or 1.2. These libraries are installed in parallel to the official one, that's why the official python-qtmobility package is linked to the 1.0.2 version.
              In maemo extras-devel I found another package:
              @python-qtmobility11@
              these are the python libraries linked to the non official QtMobility 1.1 and as well can be installed in parallel to the official one. Infact the have been saved in:
              @/opt/qtm11/lib/python2.5/site-packages/QtMobility/@
              I did create a symbolic link to these libraries in the officialfolder in which python is looking for:

              @cd /usr/lib/python2.5/site-packages/
              ln -s /opt/qtm11/lib/python2.5/site-packages/QtMobility/ ./QtMobility11@
              In these way I can access the QtMObility 1.1 from python:
              @[sbox-FREMANTLE_X86: ~] > run-standalone.sh python2.5
              Python 2.5.4 (r254:67916, May 17 2010, 21:11:14)
              [GCC 4.2.1] on linux2
              Type "help", "copyright", "credits" or "license" for more information.

              from QtMobility11 import Location
              print dir (Location)
              ['QGeoAddress', 'QGeoAreaMonitor', 'QGeoBoundingArea', 'QGeoBoundingBox',
              'QGeoBoundingCircle', 'QGeoCoordinate', 'QGeoManeuver', 'QGeoMapCircleObject',
              'QGeoMapData', 'QGeoMapGroupObject', 'QGeoMapObject', 'QGeoMapObjectInfo',
              [...]
              'QLandmarkRemoveRequest', 'QLandmarkSaveRequest', 'QLandmarkSortOrder',
              'QLandmarkUnionFilter', 'QNmeaPositionInfoSource', '_Cpp_Api', 'doc', 'file', 'name']@

              As you can see there is now access to all the Location classes from QtMobility 1.1
              Hope this can help in case you encounter similar trouble, and hope somewhen also a package for the 1.2 version appears... unfortunately I'm not able to do it myself :)

              1 Reply Last reply
              0

              • Login

              • Login or register to search.
              • First post
                Last post
              0
              • Categories
              • Recent
              • Tags
              • Popular
              • Users
              • Groups
              • Search
              • Get Qt Extensions
              • Unsolved