Когда я пытаюсь подключиться с использованием старого механизма сигнала/слота, он работает нормально, но он дает мне ошибку компиляции с использованием новой:Ошибка компиляции при подключении QTcpSocket :: error() с использованием нового механизма сигнала/слота Qt5
// Old mechanism, this works:
connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(onError(QAbstractSocket::SocketError)));
// Compile error when using the template version:
connect(socket, &QTcpSocket::error, this, &MainWindow::onError);
Это ошибка, я получаю:
error: no matching function for call to 'MainWindow::connect(QTcpSocket*&, , MainWindow*, void (MainWindow::*)(QAbstractSocket::SocketError))' connect(socket, &QTcpSocket::error, this, &MainWindow::onError); ^
Мой слот функции:
class MainWindow : public QMainWindow
{
Q_OBJECT
private slots:
void onError(QAbstractSocket::SocketError);
Я нашел similar thread on Qt forums, и они говорят, что это ошибка в Qt, но будет фиксированный на 5.1. Моя версия 5.4.2, однако (с использованием MinGW).
Так ли это ошибка Qt для реального, или мой синтаксис неправильный?
См. Также http://doc.qt.io/qt-5/signalsandslots-syntaxes.html#selecting-overloaded-signals-and-slots – JKSH