!Ъ: тык
Ъ:
Старый вариант останется доступен.
Новый вариант разрешается на этапе компиляции (а не исполнения), и работает не со строками.
Было:
connect(sender, SIGNAL(valueChanged(QString,QString)), receiver, SLOT(updateValue(QString)));Стало:
connect(sender, &Sender::valueChanged, receiver, &Receiver::updateValue );Можно так:
connect(sender, &Sender::valueChanged, 
    tr1::bind(receiver, &Receiver::updateValue, "senderValue", tr1::placeholder::_1) );Или так:
connect(sender, &Sender::valueChanged, [=](const QString &newValue) {
        receiver->updateValue("senderValue", newValue);
    });Можно писать код прямо в коннектах:
void doYourStuff(const QByteArray &page)
{
    QTcpSocket *socket = new QTcpSocket;
    socket->connectToHost("qt.nokia.com", 80);
    QObject::connect(socket, &QTcpSocket::connected, [socket, page] () {
        socket->write(QByteArray("GET " + page + "\r\n"));
    });
    QObject::connect(socket, &QTcpSocket::readyRead, [socket] () {
        qDebug()<< "GOT DATA "<< socket->readAll();
    });
    QObject::connect(socket, &QTcpSocket::disconnected, [socket] () {
        qDebug()<< "DISCONNECTED ";
        socket->deleteLater();
    });
 
    QObject::connect(socket, static_cast<void (QTcpSocket::*)(QAbstractSocket::SocketError)>(&QAbstractSocket::error), [socket] (QAbstractSocket::SocketError) {
        qDebug()<< "ERROR " << socket->errorString();
        socket->deleteLater();
    });
}




