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
Forum Updated to NodeBB v4.3 + New Features

QQmlListProperty constructor doesn't accept my arguments

Scheduled Pinned Locked Moved QML and Qt Quick
qqmllistpropert
16 Posts 3 Posters 5.6k 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
    #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