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. QQmlListProperty constructor doesn't accept my arguments

QQmlListProperty constructor doesn't accept my arguments

Scheduled Pinned Locked Moved QML and Qt Quick
qqmllistpropert
16 Posts 3 Posters 6.3k Views 1 Watching
  • 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.
  • D Offline
    D Offline
    dasRicardo
    wrote on last edited by dasRicardo
    #4

    Hmm,

    my biggest misstake was my CustomClass have a namespace so if you use namespace also u need to do this:

    Q_PROPERTY(QQmlListPropertyfull::namespace::CustomClass fields READ fields)

    **Sorry for my english :)

    PLEASE ADD [SOLVED] TO YOUR THREAD TITLE IF IT'S SOLVED.**

    1 Reply Last reply
    0
    • T Offline
      T Offline
      themts
      wrote on last edited by
      #5

      I don't use a namespace in my class.

      1 Reply Last reply
      0
      • D Offline
        D Offline
        dasRicardo
        wrote on last edited by dasRicardo
        #6

        No i dont want to say u need to replace your custom class with QObject sorry my english is horrible. I did this for this example because in my production code i have to use my custom class so this doesn't make sense here to post.

        Not enough info to help you, i doesn't know how your TestItem class looks like

        **Sorry for my english :)

        PLEASE ADD [SOLVED] TO YOUR THREAD TITLE IF IT'S SOLVED.**

        1 Reply Last reply
        0
        • T Offline
          T Offline
          themts
          wrote on last edited by themts
          #7

          TestItemClass:

          class TestItem : public NChartRenderItem
          {
              Q_OBJECT    
          private:
              QOpenGLBuffer *m_vertexBuffer = NULL;
          
          public:
              TestItem();
              ~TestItem();
          
              // NChartRenderItem interface
          public:
              bool createVertexBuffer(int bufferSize);
              bool renderItem();
          };
          

          NChartRenderItem-Class:

          class NChartRenderItem : public QObject
          {
              Q_OBJECT
          public:
              explicit NChartRenderItem(QObject *parent = 0);
              ~NChartRenderItem();
          
              virtual bool createVertexBuffer(int bufferSize) = 0;
              virtual bool renderItem() = 0;
          
          signals:
          
          public slots:
          };
          
          1 Reply Last reply
          0
          • D Offline
            D Offline
            dasRicardo
            wrote on last edited by dasRicardo
            #8

            Hmm can u show me the constructor implementation?

            **Sorry for my english :)

            PLEASE ADD [SOLVED] TO YOUR THREAD TITLE IF IT'S SOLVED.**

            1 Reply Last reply
            0
            • T Offline
              T Offline
              themts
              wrote on last edited by
              #9

              At this moment the constructors are just empty.

              TestItem::TestItem()
              {
              }
              
              1 Reply Last reply
              0
              • D Offline
                D Offline
                dasRicardo
                wrote on last edited by dasRicardo
                #10

                @themts said:

                QQmlListProperty<TestItem> TestClass::lstTestItems() const
                {
                return QQmlListProperty<TestItem>(this, 0, &TestClass::count_lstTestItems, &TestClass::at_lstTestItems);
                }

                Why this?

                In my impelentation it looks diffrent.

                <pre><code>
                //implementation of the getter
                QQmlListProperty<Object> YourClass::fields() {
                return QQmlListProperty<Object>(this, this->m_fields);
                }
                </code></pre>

                **Sorry for my english :)

                PLEASE ADD [SOLVED] TO YOUR THREAD TITLE IF IT&#x27;S SOLVED.**

                1 Reply Last reply
                0
                • T Offline
                  T Offline
                  themts
                  wrote on last edited by
                  #11

                  QQmlListProperty has 3 constructor. I'm using this one:
                  http://doc.qt.io/qt-5/qqmllistproperty.html#QQmlListProperty-4

                  That way I can use it as a "virtual" list.
                  Anyway, even if I use it your way - which is not recommended - it shows the same error.
                  "Generally this constructor should not be used in production code, as a writable QList violates QML's memory management rules. However, this constructor can be very useful while prototyping."

                  QList<TestItem*> m_lstTestItems;
                  
                  return QQmlListProperty<TestItem>(this, this->m_lstTestItems);
                  
                  1 Reply Last reply
                  0
                  • D Offline
                    D Offline
                    dasRicardo
                    wrote on last edited by
                    #12

                    OK, thanks for your hints. I will definitely change this. I saw this in different sample codes. But my c++ and QT knowledge is very nooby :) Sorry that i can't help u. Not really an idea.

                    **Sorry for my english :)

                    PLEASE ADD [SOLVED] TO YOUR THREAD TITLE IF IT&#x27;S SOLVED.**

                    1 Reply Last reply
                    0
                    • D Offline
                      D Offline
                      dasRicardo
                      wrote on last edited by dasRicardo
                      #13

                      Can u show me the constructor implementation of your NChartRenderItem class?

                      **Sorry for my english :)

                      PLEASE ADD [SOLVED] TO YOUR THREAD TITLE IF IT&#x27;S SOLVED.**

                      1 Reply Last reply
                      0
                      • T Offline
                        T Offline
                        themts
                        wrote on last edited by themts
                        #14

                        I really don't understand why it's not working.
                        I even tried to use Q_PROPERTY(QQmlListProperty<QObject> ... -> same result

                        I don't get it. The error-message (C2665) seems to be wrong as well: it says 5 overloads.
                        Actually there are only 4.

                        Does anyone has an idea?
                        Btw. I want to use QQmlListProperty as a datamodel for a listview.

                        1 Reply Last reply
                        0
                        • S Offline
                          S Offline
                          swegmann
                          wrote on last edited by
                          #15

                          Can you show us the full error message of the compiler for the case where you give it the count and at functions? I think there might be some helpfull information about this issue.

                          1 Reply Last reply
                          0
                          • T themts

                            Hi,

                            I'm doing my first steps with QQmlListProperty.
                            Unfortunately I'm not able to create such list :-(

                            header:

                            class TestClass : public QQuickFramebufferObject    
                            {
                                Q_OBJECT
                                Q_PROPERTY(QQmlListProperty<TestItem> lstTestItems READ lstTestItems)
                            
                            private:
                                static int count_lstTestItems(QQmlListProperty<TestItem> *list);
                                static TestItem* at_lstTestItems(QQmlListProperty<TestItem> *list, int index);
                            
                            public:
                                QQmlListProperty<TestItem> lstTestItems() const;
                            }
                            

                            source:

                            QQmlListProperty<TestItem> TestClass::lstTestItems() const
                            {              
                                return QQmlListProperty<TestItem>(this, 0, &TestClass::count_lstTestItems, &TestClass::at_lstTestItems);
                            }
                            

                            Error:
                            error: C2665: "QQmlListProperty<TestItem>::QQmlListProperty": Durch keine der 5 Überladungen konnten alle Argumenttypen konvertiert werden.

                            What am I missing here?

                            Thanks!
                            mts

                            P.S. how can I mark parts of my post as code?

                            [edit: Added missing coding tags three back sticks to start and three to end SGaist]

                            T Offline
                            T Offline
                            themts
                            wrote on last edited by themts
                            #16

                            solved :-)
                            no one saw it ;-)

                            public:
                                QQmlListProperty<TestItem> lstTestItems() const;
                            

                            this can't be const. Thats it.

                            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