Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. General talk
  3. The Lounge
  4. Does Qt need a modern C++ GUI API?
Forum Update on Monday, May 27th 2025

Does Qt need a modern C++ GUI API?

Scheduled Pinned Locked Moved The Lounge
246 Posts 43 Posters 276.2k 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.
  • L Offline
    L Offline
    lgeyer
    wrote on last edited by
    #179

    Obviously.

    1 Reply Last reply
    0
    • U Offline
      U Offline
      utcenter
      wrote on last edited by
      #180

      [quote author="utcenter" date="1339682641"]... you are the weener :)[/quote]

      [quote author="Lukas Geyer" date="1339682881"]Obviously.[/quote]

      I am glad we are finally in agreement about something :D Now let's move on!

      1 Reply Last reply
      0
      • G Offline
        G Offline
        godbod
        wrote on last edited by
        #181

        Come on guys! Let's keep it up... we need something new... We always need something new.

        L'imagination est tout, c'est l’aperçu des futures attractions de la vie.

        1 Reply Last reply
        0
        • S Offline
          S Offline
          Soheil
          wrote on last edited by
          #182

          I have never used QML and I do not have plans to use it. IMHO it's interesting for beginners who are doing simple projects. But, at least it will be a easy door for beginners to enter into Qt. This door has benefits and the costs for this benefits should be balanced. That's the fact.

          1 Reply Last reply
          0
          • sierdzioS Offline
            sierdzioS Offline
            sierdzio
            Moderators
            wrote on last edited by
            #183

            You loose a lot by having this attitude ;) QML is a really nice tool, it's not a monster and is unlikely to eat you.

            Anyway, you can do as you wish, of course. I mean to hint at the fact that perception about QML tends to change rapidly once one actually tries it, or at it has in my case.

            (Z(:^

            1 Reply Last reply
            0
            • S Offline
              S Offline
              Soheil
              wrote on last edited by
              #184

              @sierdzio : I'm sure that I loose a lot by having this attitude. I did not mean that I'm disagree with existence of QML or using it. It does not fit with projects I'm working on or I have worked on. My wings are much more powerful with C++ API at this time. This is about how you think. As I said, many people are happy with QML and this is enough to let it be there and improve it. This is a dynamic world.
              I will try using it as you said it may change my opinion about it.

              1 Reply Last reply
              0
              • sierdzioS Offline
                sierdzioS Offline
                sierdzio
                Moderators
                wrote on last edited by
                #185

                Yeah I kind of suspected that this is what you mean, and I've meant no harm :)

                Just couldn't stop myself, sorry.

                (Z(:^

                1 Reply Last reply
                0
                • H Offline
                  H Offline
                  hardcodes.de
                  wrote on last edited by
                  #186

                  [quote author="cincirin" date="1334815916"]I believe Apple Animation Framework is what Qt C++ GUI have to follow[/quote]

                  That could have been my words. Like Apple or not but the iOS GUI is the best prove of a smooth working UI that can be coded natively. Besides that it would bring native looking buttons etc. (in the world of the Cupertino fruit there is something like a native looking widget)

                  while(!sleep){++sheep;}

                  1 Reply Last reply
                  0
                  • J Offline
                    J Offline
                    jaak
                    wrote on last edited by
                    #187

                    [quote author="hardcodes.de" date="1353420894"]
                    [quote author="cincirin" date="1334815916"]I believe Apple Animation Framework is what Qt C++ GUI have to follow[/quote]

                    That could have been my words. Like Apple or not but the iOS GUI is the best prove of a smooth working UI that can be coded natively. Besides that it would bring native looking buttons etc. (in the world of the Cupertino fruit there is something like a native looking widget)

                    [/quote]

                    I agree with these. For ios development we have the ability to visually design the UIs and access them in the application and apply any effects or animation. A declarative framework is not needed here. I feel GUI should always be done using a visual designer unless you need your GUI to be dynamically generated based on some application parameters. The underlying code generated can be xml, qml, c++ or anything. Both ios and Android uses xml. But ios hides this behind the interface builder. Hand creating a GUI is tedious whether you are using Qml or c++. The ios approach seems the best. We have a lot of trouble writing complex GUI for Android since we have to hand create all the needed xml. Same is the case with Qml. A visual designer for Qml together with the ability to access these components from c++ is the best approach. In my experience, Qml is tough for the html people and something alien for the c++ folks.

                    1 Reply Last reply
                    0
                    • L Offline
                      L Offline
                      lgeyer
                      wrote on last edited by
                      #188

                      [quote author="Jayakrishnan.M" date="1353471883"]A visual designer for Qml together with the ability to access these components from c++ is the best approach.[/quote]"Using the QtQuick Designer":http://doc.qt.digia.com/qtcreator/creator-using-qt-quick-designer.html

                      "Using QML in C++ Applications":http://doc.qt.digia.com/qt/qtbinding.html
                      [quote author="sierdzio" date="1353412782"]I mean to hint at the fact that perception about QML tends to change rapidly once one actually tries it...[/quote]

                      1 Reply Last reply
                      0
                      • J Offline
                        J Offline
                        john_god
                        wrote on last edited by
                        #189

                        I recently started using QML, I'm really newbie. I like it but I also agree that it's much more powerfull to use the designer. The problem it that designer seems to be somewhat broken.
                        Another problem to me it we have Meego components, symbian components, (and also desktop components ???), but if I choose a new general QML project in QtCreator, the available components don't even have a button, I have to do it myself. Souldn't not be avalible many more cross plataform components (code once deploy everywhere) ? Am I missing something ?

                        1 Reply Last reply
                        0
                        • sierdzioS Offline
                          sierdzioS Offline
                          sierdzio
                          Moderators
                          wrote on last edited by
                          #190

                          [quote author="john_god" date="1353499489"]I recently started using QML, I'm really newbie. I like it but I also agree that it's much more powerfull to use the designer. The problem it that designer seems to be somewhat broken.
                          Another problem to me it we have Meego components, symbian components, (and also desktop components ???), but if I choose a new general QML project in QtCreator, the available components don't even have a button, I have to do it myself. Souldn't not be avalible many more cross plataform components (code once deploy everywhere) ? Am I missing something ?[/quote]

                          You are right, of course. Those elements are missing due to many reasons, mostly due to the long and dramatic death of Nokia support. Now Digia has a huge amount of work on their hands, and a lot of it is more important than components at the moment. I don't know where it will go in the future.

                          Maybe setting up a new playground project with the aim of adding new cross platform components is the way to go. maybe waiting for desktop components maturity is better... I don't know.

                          (Z(:^

                          1 Reply Last reply
                          0
                          • J Offline
                            J Offline
                            john_god
                            wrote on last edited by
                            #191

                            Another issue to me is the documentation. I already found some good links, but I miss a good QML book. Until now it was perhaps to early, but in the following months, with the final release of Qt5 and QtQuick 2, I think it's time for a book. I even filled a request to packet publish, since those guys are open to sugestions.

                            1 Reply Last reply
                            0
                            • U Offline
                              U Offline
                              utcenter
                              wrote on last edited by
                              #192

                              You only find the designed better because you are new, I can assure you, in time you will really get to prefer typing and leave the visual workflow for where it belongs - Photoshop.

                              The lack of in depth educational materials on QML is a big concern, like 90% of the stuff that is already available boils down to putting together something simple to demonstrate the eye candy features of QtQuick. And even thou every tool of QML is being explained, there is a HUGE gap between knowing what tools are used for and actually putting together something complex and functional with those tools.

                              Unfortunately, the biggest flaw of QML for me will not go away ever - with the risk of repeating myself, QML is great for quickly assembling existing components into an application, but if your applications depend entirely on custom and unique components, the interfacing to QML becomes a tedious and pointless endeavor. In most of the cases the interfacing components to QML in order to use its GUI features takes up more effort than implementing similar GUI features with QtGui and OpenGL on hand, which is the reason for this discussion.

                              Unfortunately, neither Nokia, nor Digia seem to have respect for the opinions of the people who voted here. That is the reason I migrated most of my work away from Qt, so the last few months I bothered to learn a few JS frameworks in depth, and I dare say QML comes nowhere near the flexibility and dynamics of the HTML/JS stack. Surely, QML is much cleaner, but offers poor separation and only a fraction of the functionality. It is ironic how the main bullet point of QML is "dynamic" GUI when in reality QML is practically static compared to using something like jQuery, which allows to build UI in a procedural and imperative way, which is IMMENSELY more flexible than having a static mark up. I often find myself starting off with practically no HTML markup, just a div to which I can attach whatever content I want dynamically, with whatever styling or animation.

                              And while flexible and dynamic, HTML/JS comes short of all the stuff I need, for which I am sticking to Qt with the good old QtGui, since essentially all the scenarios HTML comes short are also the scenarios where QML is useless. Hopefully we will at least see Android and iOS support soon which will surely breathe some life into Qt.

                              1 Reply Last reply
                              0
                              • V Offline
                                V Offline
                                vittalonline
                                wrote on last edited by
                                #193

                                my opinion , every thing z possible with Qt c++

                                1 Reply Last reply
                                0
                                • U Offline
                                  U Offline
                                  utcenter
                                  wrote on last edited by
                                  #194

                                  Ironically, Digia pledged to support Win8 and iOS while at the same time the first one lacks openGL in metro mode, the second one prohibits V8 from running. And while the Win8 dilemma can be solved by adding even more bloat and dependency by using ANGLE to translate openGL calls into Direct3D, it is obvious that forcing Qt to lean on QML spells more and more trouble, and even worse - exhausting to much developer efforts...

                                  1 Reply Last reply
                                  0
                                  • sierdzioS Offline
                                    sierdzioS Offline
                                    sierdzio
                                    Moderators
                                    wrote on last edited by
                                    #195

                                    [quote author="utcenter" date="1355679123"]Ironically, Digia pledged to support Win8 and iOS while at the same time the first one lacks openGL in metro mode, the second one prohibits V8 from running. And while the Win8 dilemma can be solved by adding even more bloat and dependency by using ANGLE to translate openGL calls into Direct3D, it is obvious that forcing Qt to lean on QML spells more and more trouble, and even worse - exhausting to much developer efforts...[/quote]

                                    Both problems you have listed are already worked upon. ANGLE is default backend on Windows since Qt5 beta1. V8 problem is addressed by v4mv that is under development currently.

                                    Besides, QtWidgets are now back on track with official maintainer.

                                    (Z(:^

                                    1 Reply Last reply
                                    0
                                    • U Offline
                                      U Offline
                                      utcenter
                                      wrote on last edited by
                                      #196

                                      [quote author="sierdzio" date="1355691692"]
                                      Besides, QtWidgets are now back on track with official maintainer.[/quote]

                                      Back on track? Which track? Going where exactly? Oblivion?
                                      Maintenance of QtWidgets doesn't change the fact it is morally and technically outdated and no longer relevant.

                                      BTW, there is really no need to quote the entire post you are replying to, considering it is the previous one. But then again, if you were that concerned with abstract aesthetics, you wouldn't be such a QML cheerleader ;)

                                      1 Reply Last reply
                                      0
                                      • L Offline
                                        L Offline
                                        lgeyer
                                        wrote on last edited by
                                        #197

                                        V8 "does work":http://lists.qt-project.org/pipermail/development/2012-December/008718.html on iOS.

                                        What has the OpenGL requirement of the scenegraph to do with QML? (Nothing.)
                                        How would a native, non-QML interface change that requirement? (It wouldn't.)

                                        Why is it Digias or the Qt Projects fault that Microsoft has made the deliberate choice to leave the industry standard for hardware acceleration out? (It isn't.)

                                        1 Reply Last reply
                                        0
                                        • U Offline
                                          U Offline
                                          utcenter
                                          wrote on last edited by
                                          #198

                                          Why you ask me questions and then you answer instead of me? And no, I won't answer for you, I am not all that manipulative ;)

                                          Care to point out where exactly did I state that V8 can't work on iOS? IIRC I used the term "prohibit"... Sure, you can jailbreak, but then your application no longer classifies as "legit" in the eyes of Apple. Also, last time I checked, jailbreaking voids product warranty. Apple don't want any execution engines on their platform for security purposes, and a NATIVE API could have plaid a wonderful role here, because it would compile to platform binary, which Apple don't mind being executed on their platforms.

                                          bq. What has the OpenGL requirement of the scenegraph to do with QML?(Nothing.)

                                          QML is an exclusive frontend to using QtQuick2, which is OpenGL dependent. The relation between OpenGL requirements and QML is obvious enough for a blind man to see!

                                          bq. How would a native, non-QML interface change that requirement? (It wouldn’t.)

                                          It depends a lot, a more flexible API could just as well include a fallback for rendering in software, which is not that much of an issue on powerful desktops. This way the same code would be able to run optimally depending on the capabilities of any particular platform.

                                          bq.
                                          Why is it Digias or the Qt Projects fault that Microsoft has made the deliberate choice to leave the industry standard for hardware acceleration out? (It isn’t.)

                                          No one argues that MS sucks. The whole point of this "discussion" is to prevent Qt from behaving in a similar manner. Neither Nokia, nor Digia is to blame for the decision of MS to abandon a portable industry standard in favor of their own proprietary technology, but Nokia and Digia are to blame for abandoning another portable industry standard in favor of their own proprietary technology (got to love the hypocrisy of this), I mean of course scrapping a public C++ API in favor of an exclusive QML one. And while MS surely has the downside when it comes to portability, at least its proprietary technology is more capable, more feature rich and offers public native APIs.

                                          See now Lucas - reality extends far beyond your personal conceptual limitations. For some reason you seem to have a huge problem abstracting from your bias and perceiving the matter objectively.

                                          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