如何使用新语法 QT5 将信号连接到信号?

Art*_*072 1 c++ qt signals-slots qt5

我正在尝试使用新语法将信号连接到信号:

connect(ui->line,&QLineEdit::returnPressed,ui->button,&QPushButton::clicked);
Run Code Online (Sandbox Code Playgroud)

但是编译器抛出一个错误,所有这些旧语法都有效:

connect(ui->line,SIGNAL(returnPressed()),ui->button,SIGNAL(clicked()));
Run Code Online (Sandbox Code Playgroud)

我知道这可以连接到功能点击:

connect(ui->line,&QLineEdit::returnPressed,ui->button,&QPushButton::click);
Run Code Online (Sandbox Code Playgroud)

但是有没有办法使用新语法将它连接到信号?

Bot*_*tje 5

快速浏览一下文档,不匹配源于对clicked信号的额外参数。

一种选择是使用 lambda 来注入该参数:

connect(ui->line,&QLineEdit::returnPressed, this, [this]() { ui->button->clicked(false); });
Run Code Online (Sandbox Code Playgroud)