[solved]connect: No such slot QItemDelegate::invalidData()

  • Hi,
    I tried to connect signals from a object to the function declared in MyDeleagate which inherits QsqlRelationalTableDelegate
    @MyDelegate::MyDelegate(QObject *parent) : QSqlRelationalDelegate(parent)
    blankCheck = new BlankCheck();
    QObject::connect(blankCheck, SIGNAL(invalidEntry()), this, SLOT(invalidData()));

    @void MyDelegate::invalidData()
    qDebug() << "Invalid Entry";

    and the class declaration is
    @class MyDelegate : public QSqlRelationalDelegate
    MyDelegate(QObject *parent);
    QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
    const QModelIndex &index) const;
    void setEditorData(QWidget *editor, const QModelIndex &index) const;
    void setModelData(QWidget *editor, QAbstractItemModel *model,
    const QModelIndex &index) const;
    void reset();

    BlankCheck *blankCheck;

    private slots:
    void invalidData();


    It is compiled, but while running the program, following error occurs

    Object::connect: No such slot QItemDelegate::invalidData() in mydelegate.cpp:15

    Why I can't connect these?

    Thanking You,

  • You forgot the Q_OBJECT macro in your declaration.

    Without this macro, signals, slots and introspection features will not work.

  • Hi,
    Thank you, but when using Q_OBJECT marco following errors while compiling! Why?

    mydelegate.cpp:10: error: undefined reference to `vtable for MyDelegate'

  • Did you re-run qmake after adding Q_OBJECT?

  • Thanks Solved the issue.

Log in to reply

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.