Russian Qt Forum

Qt => Дополнительные компоненты => Тема начата: RedDog от Май 22, 2014, 08:40



Название: Qt & CMake & boost
Отправлено: RedDog от Май 22, 2014, 08:40
Понадобилось ацки смешать указанные средства.
После первого "смешивания" стало ругаться на Q_FOREACH.
Приписал в CMake флажок QT_NO_KEYWORDS, заменил signals -> Q_SIGNALS, slot -> Q_SLOTS
При этом перестал работать коннект сигналов-слотов. А именно: надо сконнектить QTcpSocket со своим слотом:
Код:
QObject::connect( &Socket, SIGNAL( readyRead() ), this, SLOT( SocketReadyRead() ) );
студия выдает:
Цитировать
error C2665: QObject::connect: ни одна из 3 перегрузок не может преобразовать все типы аргументов


Название: Re: Qt & CMake & boost
Отправлено: RedDog от Май 22, 2014, 16:12
Сам спросил, сам отвечаю:
Код:
QObject::connect( &Socket, &QTcpSocket::readyRead, this, &CTcpClient::SocketReadyRead );
Так собирается.


Название: Re: Qt & CMake & boost
Отправлено: b-s-a от Май 24, 2014, 15:51
У меня в такой же ситуации все работало после замены signals/slots на Q_SIGNALS/Q_SLOTS


Название: Re: Qt & CMake & boost
Отправлено: alex312 от Май 24, 2014, 17:36
Не знаю поможет или нет, но попробуйте спрятать boost от moc.
Код
C++ (Qt)
#ifndef Q_MOC_RUN
    ...
#endif