Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. A basic Question
Forum Update on Monday, May 27th 2025

A basic Question

Scheduled Pinned Locked Moved Solved QML and Qt Quick
qmlstyesheet
30 Posts 5 Posters 11.0k 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.
  • M Offline
    M Offline
    mrjj
    Lifetime Qt Champion
    wrote on 25 Sept 2017, 09:47 last edited by
    #18

    hi
    yes it might be annoying at first. Like UI of widgets being private but
    save you from pain down the road.

    states

    Oh that is a nice class. So that would be better if m_connected state were more complex
    or more than source property we wanted to changed on the clicked etc.

    ¨Thank you for sharing.

    1 Reply Last reply
    0
    • E Offline
      E Offline
      Eeli K
      wrote on 25 Sept 2017, 21:20 last edited by
      #19

      Just one stylistic note... Quick Controls 2 standard library qml code uses this extensively so it may be at least good to know even if you don't want to use it. It's alternative syntax for nested if-else. Modifying my own code, just set the rectangle color (or in sierzio's code the image source):

      color: root.isConnected ? (mouseArea.containsMouse ? "red" : "green") :
             (mouseArea.containsMouse ? "blue" : "yellow")
      

      This is from the Material style's Button.qml:

      color: !control.enabled ? control.Material.hintTextColor :
                  control.flat && control.highlighted ? control.Material.accentColor :
                  control.highlighted ? control.Material.primaryHighlightedTextColor : control.Material.foreground
      
      1 Reply Last reply
      1
      • S Offline
        S Offline
        sierdzio
        Moderators
        wrote on 26 Sept 2017, 04:11 last edited by
        #20

        Heh, actually the first version of my snipped used the question mark notation, but I changed it to if-else because I thought it would be more readable.

        It is definitely a good approach, and for simple cases I would recommend it - QML engine can optimize the question mark operator more heavily than if-else.

        (Z(:^

        1 Reply Last reply
        1
        • M Offline
          M Offline
          mrjj
          Lifetime Qt Champion
          wrote on 26 Sept 2017, 06:21 last edited by
          #21

          hi
          oh my gosh, is that like a c++ ternary operator that can be nested ?
          But its not super readable unless really short.

          1 Reply Last reply
          0
          • G Offline
            G Offline
            GrecKo
            Qt Champions 2018
            wrote on 26 Sept 2017, 07:10 last edited by
            #22

            It's the same, a c++ ternary operator can be nested.

            M 1 Reply Last reply 26 Sept 2017, 07:17
            0
            • G GrecKo
              26 Sept 2017, 07:10

              It's the same, a c++ ternary operator can be nested.

              M Offline
              M Offline
              mrjj
              Lifetime Qt Champion
              wrote on 26 Sept 2017, 07:17 last edited by
              #23

              @GrecKo
              Yep, i realized that after asking but I think i never saw one in c++
              like
              !m_seedsfilter ? good=true : m_seedsfilter==1 ? good=newClusters(Sp) : good=newSeed(Sp);

              (ugly as hell)

              1 Reply Last reply
              0
              • G Offline
                G Offline
                GrecKo
                Qt Champions 2018
                wrote on 26 Sept 2017, 07:22 last edited by
                #24

                Off-topic but it would be good = !m_seedsfilter? true : m_seedsfilter == 1 ? newClusters(Sp) : newSeed(Sp);, it's the same notation in Js and in c++

                1 Reply Last reply
                1
                • M Offline
                  M Offline
                  mrjj
                  Lifetime Qt Champion
                  wrote on 26 Sept 2017, 07:27 last edited by
                  #25

                  Thanks
                  but was just live sample from
                  https://stackoverflow.com/questions/18237432/how-to-rewrite-complicated-lines-of-c-code-nested-ternary-operator/18237507
                  But back to topic a bit.

                  Do you know how much of JS that is supported in QML ?
                  Can i include .js stuff ?

                  S 1 Reply Last reply 26 Sept 2017, 07:38
                  0
                  • M mrjj
                    26 Sept 2017, 07:27

                    Thanks
                    but was just live sample from
                    https://stackoverflow.com/questions/18237432/how-to-rewrite-complicated-lines-of-c-code-nested-ternary-operator/18237507
                    But back to topic a bit.

                    Do you know how much of JS that is supported in QML ?
                    Can i include .js stuff ?

                    S Offline
                    S Offline
                    sierdzio
                    Moderators
                    wrote on 26 Sept 2017, 07:38 last edited by
                    #26

                    @mrjj said in A basic Question:

                    Do you know how much of JS that is supported in QML ?
                    Can i include .js stuff ?

                    I think V4 engine implements full ECMA 5.1 specs, so you can run any JavaScript there, unless it uses newer features.

                    (Z(:^

                    M 1 Reply Last reply 26 Sept 2017, 07:46
                    0
                    • S sierdzio
                      26 Sept 2017, 07:38

                      @mrjj said in A basic Question:

                      Do you know how much of JS that is supported in QML ?
                      Can i include .js stuff ?

                      I think V4 engine implements full ECMA 5.1 specs, so you can run any JavaScript there, unless it uses newer features.

                      M Offline
                      M Offline
                      mrjj
                      Lifetime Qt Champion
                      wrote on 26 Sept 2017, 07:46 last edited by
                      #27

                      @sierdzio said in A basic Question:

                      ECMA 5.1 specs

                      so that is pretty old ?
                      5.1 Edition / June 2011
                      https://www.ecma-international.org/ecma-262/5.1/

                      So most from
                      https://www.javascripting.com/

                      might not work as 6 years in Web tech is a decade ?

                      1 Reply Last reply
                      0
                      • S Offline
                        S Offline
                        sierdzio
                        Moderators
                        wrote on 26 Sept 2017, 07:51 last edited by
                        #28

                        It is old, indeed. But a lot of projects like node.js, charts.js etc. seem to be working (or used to work 1-2 years back).

                        There is a ticket for upgrading the engine, but it lays dormant since years https://bugreports.qt.io/browse/QTBUG-47735

                        (Z(:^

                        M 1 Reply Last reply 26 Sept 2017, 08:54
                        1
                        • S sierdzio
                          26 Sept 2017, 07:51

                          It is old, indeed. But a lot of projects like node.js, charts.js etc. seem to be working (or used to work 1-2 years back).

                          There is a ticket for upgrading the engine, but it lays dormant since years https://bugreports.qt.io/browse/QTBUG-47735

                          M Offline
                          M Offline
                          mrjj
                          Lifetime Qt Champion
                          wrote on 26 Sept 2017, 08:54 last edited by
                          #29

                          @sierdzio

                          Ok sounds pretty good. even if older.

                          It is odd that its not been updated since lots of activities on QML.

                          Thank you for all the info :)

                          S 1 Reply Last reply 26 Sept 2017, 09:14
                          0
                          • M mrjj
                            26 Sept 2017, 08:54

                            @sierdzio

                            Ok sounds pretty good. even if older.

                            It is odd that its not been updated since lots of activities on QML.

                            Thank you for all the info :)

                            S Offline
                            S Offline
                            sierdzio
                            Moderators
                            wrote on 26 Sept 2017, 09:14 last edited by
                            #30

                            @mrjj said in A basic Question:

                            It is odd that its not been updated since lots of activities on QML.

                            There was a discussion about it on the mailing list once. If I recall it correctly, the priority for Qt devs working on QML was to keep the engine fast, and make it work 100% reliable in common QML use cases (and the most common uses are: small bindings/ assignments and short functions) - so they did not feel pressure to implement newer features.

                            (Z(:^

                            1 Reply Last reply
                            0

                            27/30

                            26 Sept 2017, 07:46

                            • Login

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