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. invalid application of 'sizeof' to incomplete type 'QVariant'
QtWS25 Last Chance

invalid application of 'sizeof' to incomplete type 'QVariant'

Scheduled Pinned Locked Moved Solved QML and Qt Quick
qvariantlist qlqvarianterrorc++ and qml cod
3 Posts 2 Posters 7.4k 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.
  • E Offline
    E Offline
    Elnur_Ismailzada
    wrote on last edited by
    #1

    Hi!
    I want to fill the combo box in qml from c++ class, but I have errors in the line return m_serialPortList;
    Any ideas?

    in SerialPortViewModel.h

    Q_PROPERTY(QVariantList serialPortList READ getSerialPortList CONSTANT)
    
    public:
        QVariantList getSerialPortList();
    private:
        QVariantList m_serialPortList;
    

    in SerialPortViewModel.cpp

    QVariantList SerialPortViewModel::getSerialPortList()
    {
        return m_serialPortList;
    }
    

    in main.cpp

    engine.rootContext()->setContextProperty("model", new SerialPortViewModel());
    

    in main.qml

    ComboBox {
             id: comboBoxSerialPorts
             model: model.serialPortList
    }
    

    error:

    In file included from C:\Qt\5.9.1\mingw53_32\include/QtCore/qglobal.h:1152:0,
                     from C:\Qt\5.9.1\mingw53_32\include/QtCore/qnamespace.h:43,
                     from C:\Qt\5.9.1\mingw53_32\include/QtCore/qobjectdefs.h:48,
                     from C:\Qt\5.9.1\mingw53_32\include\QtCore/qobject.h:46,
                     from C:\Qt\5.9.1\mingw53_32\include\QtCore/QObject:1,
                     from ..\..\HidBallast-QtQuick MVVM\HidBallast\serialportviewmodel.h:4,
                     from ..\..\HidBallast-QtQuick MVVM\HidBallast\serialportviewmodel.cpp:1:
    C:\Qt\5.9.1\mingw53_32\include/QtCore/qtypeinfo.h: In instantiation of 'class QTypeInfo<QVariant>':
    C:\Qt\5.9.1\mingw53_32\include/QtCore/qlist.h:459:31:   required from 'void QList<T>::node_copy(QList<T>::Node*, QList<T>::Node*, QList<T>::Node*) [with T = QVariant]'
    C:\Qt\5.9.1\mingw53_32\include/QtCore/qlist.h:813:22:   required from 'QList<T>::QList(const QList<T>&) [with T = QVariant]'
    ..\..\HidBallast-QtQuick MVVM\HidBallast\serialportviewmodel.cpp:5:12:   required from here
    C:\Qt\5.9.1\mingw53_32\include/QtCore/qtypeinfo.h:67:26: error: invalid application of 'sizeof' to incomplete type 'QVariant'
             isLarge = (sizeof(T)>sizeof(void*)),
                              ^
    C:\Qt\5.9.1\mingw53_32\include/QtCore/qtypeinfo.h:69:24: error: invalid application of 'sizeof' to incomplete type 'QVariant'
             sizeOf = sizeof(T)
                            ^
    In file included from C:\Qt\5.9.1\mingw53_32\include\QtCore/qobject.h:49:0,
                     from C:\Qt\5.9.1\mingw53_32\include\QtCore/QObject:1,
                     from ..\..\HidBallast-QtQuick MVVM\HidBallast\serialportviewmodel.h:4,
                     from ..\..\HidBallast-QtQuick MVVM\HidBallast\serialportviewmodel.cpp:1:
    C:\Qt\5.9.1\mingw53_32\include/QtCore/qlist.h: In instantiation of 'void QList<T>::node_copy(QList<T>::Node*, QList<T>::Node*, QList<T>::Node*) [with T = QVariant]':
    C:\Qt\5.9.1\mingw53_32\include/QtCore/qlist.h:813:22:   required from 'QList<T>::QList(const QList<T>&) [with T = QVariant]'
    ..\..\HidBallast-QtQuick MVVM\HidBallast\serialportviewmodel.cpp:5:12:   required from here
    C:\Qt\5.9.1\mingw53_32\include/QtCore/qlist.h:462:28: error: invalid use of incomplete type 'class QVariant'
                     current->v = new T(*reinterpret_cast<T*>(src->v));
                                ^
    In file included from C:\Qt\5.9.1\mingw53_32\include\QtCore/qobject.h:54:0,
                     from C:\Qt\5.9.1\mingw53_32\include\QtCore/QObject:1,
                     from ..\..\HidBallast-QtQuick MVVM\HidBallast\serialportviewmodel.h:4,
                     from ..\..\HidBallast-QtQuick MVVM\HidBallast\serialportviewmodel.cpp:1:
    C:\Qt\5.9.1\mingw53_32\include/QtCore/qmetatype.h:114:21: note: forward declaration of 'class QVariant'
         F(QVariant, 41, QVariant) \
                         ^
    C:\Qt\5.9.1\mingw53_32\include/QtCore/qmetatype.h:1879:11: note: in definition of macro 'QT_FORWARD_DECLARE_STATIC_TYPES_ITER'
         class Name;
               ^
    C:\Qt\5.9.1\mingw53_32\include/QtCore/qmetatype.h:1881:1: note: in expansion of macro 'QT_FOR_EACH_STATIC_CORE_CLASS'
     QT_FOR_EACH_STATIC_CORE_CLASS(QT_FORWARD_DECLARE_STATIC_TYPES_ITER)
    
    1 Reply Last reply
    0
    • hskoglundH Offline
      hskoglundH Offline
      hskoglund
      wrote on last edited by
      #2

      Hi, try #include <QVariant> in your SerialPortViewModel.h

      E 1 Reply Last reply
      3
      • hskoglundH hskoglund

        Hi, try #include <QVariant> in your SerialPortViewModel.h

        E Offline
        E Offline
        Elnur_Ismailzada
        wrote on last edited by Elnur_Ismailzada
        #3

        @hskoglund thank you so much!!!
        I import <QVarianList> and it solved my problem.

        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