Qt5 信号槽新写法

来源:互联网 发布:淘宝买钢珠警察会查么 编辑:程序博客网 时间:2024/06/12 15:38

Qt4 旧语法:

connect(sender, SIGNAL (valueChanged(QString,QString)),receiver, SLOT (updateValue(QString)) );

Qt新语法:

QLabel *label = new QLabel;QLineEdit *lineEdit = new QLineEdit;QObject::connect(lineEdit, &QLineEdit::textChanged,                 label,  &QLabel::setText);


能和c++ 11 lambda表达式一起使用:

QByteArray page = ...;QTcpSocket *socket = new QTcpSocket;socket->connectToHost("qt-project.org", 80);QObject::connect(socket, &QTcpSocket::connected, this, [=] () {        socket->write("GET " + page + "\r\n");    }, Qt::AutoConnection);



带有不同的参数。 新方式要用下列代码替代:(尽量不要重载)

connect(mySpinBox, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), mySlider, &QSlider::setValue);


原创粉丝点击