Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Cross-platform Qt data visualization apps really possible?

Cross-platform Qt data visualization apps really possible?

Scheduled Pinned Locked Moved Solved General and Desktop
7 Posts 2 Posters 650 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.
  • T Offline
    T Offline
    Tom asso
    wrote on 29 Aug 2019, 00:47 last edited by Tom asso
    #1

    Has anyone run the same Qt data visualization app on both Android and a desktop? Qt claims to provide application cross-platform portability, but after several weeks evaluation I've been unable to demonstrate it.

    I want to develop apps that use the Qt data visualization framework, such as Q3DSurface, and I want the same app to run on a ubuntu desktop with a mouse as well as on an Android phone. Qt advertises this dual-platform capability and I hoped to demonstrate it using the examples provided by Qt version 5.13.0, but have been unsuccessful. Of the Qt data visualization examples It seems that Quick Qt examples run on Android, Qt Widget examples run on my ubuntu 16.04 desktop, but I have not found any data visualization example that runs on both platforms. Specifically I see the following:

    • Qt widget examples such as surface and texturesurface run on the ubuntu desktop, but do not run properly on Android v 8.0.0. On Android those apps actually start up and display the Q3DSurface properly, but do not respond to touch events to rotate or zoom the display.

    • Qt Quick examples such as qmlsurface run on Android, but do not run on the ubuntu desktop, where they exit with "OpenGL version is too low, at least 2.1 is required". This error is displayed despite the fact that the desktop is running OpenGL version 4.5.

    I've tried a few in-code approaches to address the above without success. Cross-platform app portability is a requirement for my project, and it's looking like Qt cannot provide that. Has anyone achieved it? Any advice or examples are much appreciated!

    1 Reply Last reply
    0
    • S Offline
      S Offline
      skycrestway
      wrote on 29 Aug 2019, 04:25 last edited by
      #2

      The error message appears to come from the following source:
      https://code.woboq.org/qt5/qtdatavis3d/src/datavisualization/engine/abstract3drenderer.cpp.html

      My guess is that you compiled Qt yourself and did not have the right include files present for opengl.

      If I use the Qt 5.13.0 from their download, this example works fine on ubuntu 19.04.

      T 1 Reply Last reply 29 Aug 2019, 17:01
      3
      • S skycrestway
        29 Aug 2019, 04:25

        The error message appears to come from the following source:
        https://code.woboq.org/qt5/qtdatavis3d/src/datavisualization/engine/abstract3drenderer.cpp.html

        My guess is that you compiled Qt yourself and did not have the right include files present for opengl.

        If I use the Qt 5.13.0 from their download, this example works fine on ubuntu 19.04.

        T Offline
        T Offline
        Tom asso
        wrote on 29 Aug 2019, 17:01 last edited by Tom asso
        #3

        @skycrestway I downloaded the open source from the Qt online downloader page, which provided me with qt-unified-linux-x64-3.1.1-online.run. I then executed that downloaded file, specified a local non-root Qt home directory, requested version 5.13.0, all of the developer/designer tools (Qt creator, etc). Is that how you installed Qt? Did I miss some step? E.g. is there a 'make install' I should do? Thanks for your feedback!

        1 Reply Last reply
        0
        • S Offline
          S Offline
          skycrestway
          wrote on 29 Aug 2019, 17:39 last edited by
          #4

          This is how I originally installed it for an Qt earlier version. Once installed there is a MaintainanceTool in the top Qt directory. I used it to install the 5.13.0 version. After running this tool, you choose "Add or remove components". You can then see what you have installed. Perhaps you are missing some package that is needed. The tool would also let you delete the 5.13.0 version and then run it again to reinstall that version.

          T 1 Reply Last reply 29 Aug 2019, 18:53
          2
          • S skycrestway
            29 Aug 2019, 17:39

            This is how I originally installed it for an Qt earlier version. Once installed there is a MaintainanceTool in the top Qt directory. I used it to install the 5.13.0 version. After running this tool, you choose "Add or remove components". You can then see what you have installed. Perhaps you are missing some package that is needed. The tool would also let you delete the 5.13.0 version and then run it again to reinstall that version.

            T Offline
            T Offline
            Tom asso
            wrote on 29 Aug 2019, 18:53 last edited by Tom asso
            #5

            @skycrestway - Is there is no 'make install' step I must run to put things in root-owned directories (e.g. /usr/local)? Also, can you please verify your OpenGL and Mesa versions (glxinfo command) ? I ask because the abstract3drenderer.cpp code that generates the "OpenGL version is too low" message is this:

                   m_funcs_2_1 = QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_2_1>();
                   [...]
                    if (!m_funcs_2_1)
                        qFatal("OpenGL version is too low, at least 2.1 is required");
            

            My ubuntu system is running OpenGL 4.5, and the request for OpenGL 2.1 functions returns nullptr (I don't understand why), which causes the failure. Is your system running OpenGL 2.1?

            Thank you very much!

            1 Reply Last reply
            0
            • S Offline
              S Offline
              skycrestway
              wrote on 30 Aug 2019, 00:28 last edited by
              #6

              @tom-asso said in Cross-platform Qt data visualization apps really possible?:

              OpenGL

              There is no make install step.

              OpenGL core profile version string: 4.5 (Core Profile) Mesa 19.0.8
              OpenGL ES profile version string: OpenGL ES 3.2 Mesa 19.0.8

              Here is a list of opengl packages with version information for my Ubuntu 19.04
              libgl1-mesa-dev:amd64 19.0.8-0ubuntu0~19.04.1
              libgl1-mesa-dri:amd64 19.0.8-0ubuntu0~19.04.1
              libgles2-mesa-dev:amd64 19.0.8-0ubuntu0~19.04.1
              libglx-mesa0:amd64 19.0.8-0ubuntu0~19.04.1
              libopengl0:amd64 1.1.1-0ubuntu1
              libqt5opengl5:amd64 5.12.2+dfsg-4ubuntu1
              libqt5opengl5-dev:amd64 5.12.2+dfsg-4ubuntu1

              1 Reply Last reply
              1
              • T Offline
                T Offline
                Tom asso
                wrote on 3 Sept 2019, 18:49 last edited by
                #7

                I upgraded my ubuntu host to 18.04.2 - now Qt Quick data visualization examples run on ubuntu as well as Android without error. @skycrestway - thank you for providing the "existence proof" of this cross-platform capability!

                1 Reply Last reply
                0

                6/7

                30 Aug 2019, 00:28

                • Login

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