• why cant i get rid of this error?

    error: no matching function for call to 'MainWindow::connect(PlayList*&, const char*, __gnu_cxx::__alloc_traits<std::allocator<Track> >::value_type*, const char*)'
    heres my code:

  • @Lorence
    From your code class Track does not derive from QObject, thus you can not connect to it:

    class Track : public QObject 

    Also the following looks strange:

    std::vector<Track> playList;

    Since you have a class called PlayList. If that is correct I suggest calling your variable trackList instead.

  • Another issue, your class Track does not have a slot called play(), there is a playSong() that I suspect you wanted to call.

    If you are using Qt 5 use the new connect syntax instead and you will reduce such errors:

    connect(ui->tab1List, &PlayList::clickedToPlay, &playList.back(), &Track::playSong);

    PS: I replaced the playList[playList.size()-1] with the std::vector::back() function call since it should do the same but the intent is clear.

  • Guys!!! sorry for the late reply, i was so busy from my school projects

    heres the error:
    error: use of deleted function 'Track::Track(const Track&)'
    { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }

    heres the new code:

  • Lifetime Qt Champion

    you have declared your list as using non pointers.
    std::vector<Track> playList;
    So track must be copy able.
    but since its a QObject, its not allowed.
    So it must be
    std::vector<Track*> playList;

    Thats why you get Track(const Track&) error

    [edit: fixed typo -> QObject are not copyable SGaist]

  • @TheBadger
    I tried to investigate the error, and i found where it is coming from
    its from this line
    which is written before the connect() in the code