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. Error when inherit from QQuickGridView
Forum Updated to NodeBB v4.3 + New Features

Error when inherit from QQuickGridView

Scheduled Pinned Locked Moved Unsolved QML and Qt Quick
2 Posts 2 Posters 674 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.
  • zeangelZ Offline
    zeangelZ Offline
    zeangel
    wrote on last edited by
    #1

    I want to override the function of keyPreesEvent of QQuickGridView, so I created an class inherit from QQuickGridView, but the link failed.
    Anybody who can help?

    #ifndef BASEGRIDVIEW_P_H
    #define BASEGRIDVIEW_P_H

    #include <QObject>
    #include <QtQuick/private/qquickgridview_p.h>

    class BaseGridView : public QQuickGridView
    {
    Q_OBJECT
    // Q_INTERFACES(QQmlParserStatus)

    public:
    explicit BaseGridView(QQuickItem * parent = Q_NULLPTR): QQuickGridView(parent)
    {

    }
    

    //protected:
    // void keyPressEvent(QKeyEvent *) Q_DECL_OVERRIDE;

    // Q_DISABLE_COPY(BaseGridView)
    };

    #endif // BASEGRIDVIEW_P_H

    I got these link errors:

    ./debug/moc_basegridview_p.cpp:79: undefined reference to QQuickGridView::qt_metacast(char const*)' ./debug/moc_basegridview_p.cpp:84: undefined reference to QQuickGridView::qt_metacall(QMetaObject::Call, int, void**)'
    ./debug\moc_basegridview_p.o:moc_basegridview_p.cpp:(.rdata+0x4): undefined reference to QQuickGridView::staticMetaObject' ./debug\moc_basegridview_p.o:moc_basegridview_p.cpp:(.rdata$_ZTV12BaseGridView[__ZTV12BaseGridView]+0x5c): undefined reference to QQuickGridView::keyPressEvent(QKeyEvent*)'
    ./debug\moc_basegridview_p.o:moc_basegridview_p.cpp:(.rdata$_ZTV12BaseGridView[__ZTV12BaseGridView]+0xb4): undefined reference to QQuickGridView::geometryChanged(QRectF const&, QRectF const&)' ./debug\moc_basegridview_p.o:moc_basegridview_p.cpp:(.rdata$_ZTV12BaseGridView[__ZTV12BaseGridView]+0xe4): undefined reference to QQuickGridView::viewportMoved(QFlagsQt::Orientation)'
    ./debug\moc_basegridview_p.o:moc_basegridview_p.cpp:(.rdata$_ZTV12BaseGridView[__ZTV12BaseGridView]+0xe8): undefined reference to QQuickGridView::setHighlightFollowsCurrentItem(bool)' ./debug\moc_basegridview_p.o:moc_basegridview_p.cpp:(.rdata$_ZTV12BaseGridView[__ZTV12BaseGridView]+0xec): undefined reference to QQuickGridView::setHighlightMoveDuration(int)'
    ./debug\moc_basegridview_p.o:moc_basegridview_p.cpp:(.rdata$_ZTV12BaseGridView[__ZTV12BaseGridView]+0xf0): undefined reference to QQuickGridView::initItem(int, QObject*)' /plugin/basegridview_p.h:9: undefined reference to QQuickGridView::~QQuickGridView()'

    In my pro file, I already added this:
    QT += core qml quick
    QT += core-private gui-private qml-private quick-private

    BTW, when I inherit from QQuickFlickable, there is no link error.

    I'm using Qt5.6.0

    p3c0P 1 Reply Last reply
    0
    • zeangelZ zeangel

      I want to override the function of keyPreesEvent of QQuickGridView, so I created an class inherit from QQuickGridView, but the link failed.
      Anybody who can help?

      #ifndef BASEGRIDVIEW_P_H
      #define BASEGRIDVIEW_P_H

      #include <QObject>
      #include <QtQuick/private/qquickgridview_p.h>

      class BaseGridView : public QQuickGridView
      {
      Q_OBJECT
      // Q_INTERFACES(QQmlParserStatus)

      public:
      explicit BaseGridView(QQuickItem * parent = Q_NULLPTR): QQuickGridView(parent)
      {

      }
      

      //protected:
      // void keyPressEvent(QKeyEvent *) Q_DECL_OVERRIDE;

      // Q_DISABLE_COPY(BaseGridView)
      };

      #endif // BASEGRIDVIEW_P_H

      I got these link errors:

      ./debug/moc_basegridview_p.cpp:79: undefined reference to QQuickGridView::qt_metacast(char const*)' ./debug/moc_basegridview_p.cpp:84: undefined reference to QQuickGridView::qt_metacall(QMetaObject::Call, int, void**)'
      ./debug\moc_basegridview_p.o:moc_basegridview_p.cpp:(.rdata+0x4): undefined reference to QQuickGridView::staticMetaObject' ./debug\moc_basegridview_p.o:moc_basegridview_p.cpp:(.rdata$_ZTV12BaseGridView[__ZTV12BaseGridView]+0x5c): undefined reference to QQuickGridView::keyPressEvent(QKeyEvent*)'
      ./debug\moc_basegridview_p.o:moc_basegridview_p.cpp:(.rdata$_ZTV12BaseGridView[__ZTV12BaseGridView]+0xb4): undefined reference to QQuickGridView::geometryChanged(QRectF const&, QRectF const&)' ./debug\moc_basegridview_p.o:moc_basegridview_p.cpp:(.rdata$_ZTV12BaseGridView[__ZTV12BaseGridView]+0xe4): undefined reference to QQuickGridView::viewportMoved(QFlagsQt::Orientation)'
      ./debug\moc_basegridview_p.o:moc_basegridview_p.cpp:(.rdata$_ZTV12BaseGridView[__ZTV12BaseGridView]+0xe8): undefined reference to QQuickGridView::setHighlightFollowsCurrentItem(bool)' ./debug\moc_basegridview_p.o:moc_basegridview_p.cpp:(.rdata$_ZTV12BaseGridView[__ZTV12BaseGridView]+0xec): undefined reference to QQuickGridView::setHighlightMoveDuration(int)'
      ./debug\moc_basegridview_p.o:moc_basegridview_p.cpp:(.rdata$_ZTV12BaseGridView[__ZTV12BaseGridView]+0xf0): undefined reference to QQuickGridView::initItem(int, QObject*)' /plugin/basegridview_p.h:9: undefined reference to QQuickGridView::~QQuickGridView()'

      In my pro file, I already added this:
      QT += core qml quick
      QT += core-private gui-private qml-private quick-private

      BTW, when I inherit from QQuickFlickable, there is no link error.

      I'm using Qt5.6.0

      p3c0P Offline
      p3c0P Offline
      p3c0
      Moderators
      wrote on last edited by p3c0
      #2

      @zeangel I'm not aware of the error( may be you are missing some header files ?) but why would you want to subclass private classes ? Chances are that the code changes with each new releases.
      I think you should have a look at Keys QML Type.

      157

      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