Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt
  • Unsolved
Collapse
qtws26_logo

The Qt Event of the Year: Qt World Summit 2026

Save Your Spot >
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. QQmlListProperty constructor doesn't accept my arguments
Qt 6.12 LTS is out! See what's new in the release blog

QQmlListProperty constructor doesn't accept my arguments

Scheduled Pinned Locked Moved QML and Qt Quick
qqmllistpropert
16 Posts 3 Posters 9.1k 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.
  • 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
    • ? Offline
      ? Offline
      A Former User
      wrote on last edited by A Former User
      #8

      Hmm can u show me the constructor implementation?

      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
        • ? Offline
          ? Offline
          A Former User
          wrote on last edited by A Former User
          #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>

          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
            • ? Offline
              ? Offline
              A Former User
              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.

              1 Reply Last reply
              0
              • ? Offline
                ? Offline
                A Former User
                wrote on last edited by A Former User
                #13

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

                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
                      • Unsolved