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

标签 c++ qt qt5 signals-slots

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

connect(ui->line,&QLineEdit::returnPressed,ui->button,&QPushButton::clicked);

但是编译器会抛出一个错误,旧的语法仍然有效:

connect(ui->line,SIGNAL(returnPressed()),ui->button,SIGNAL(clicked()));

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

connect(ui->line,&QLineEdit::returnPressed,ui->button,&QPushButton::click);

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

最佳答案

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

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

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

关于c++ - 如何使用新语法 QT5 将信号连接到信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62150034/

相关文章:

c++ - 在排序列表中恰好找到 N 个连续的

c++ - 反转指针中的数组

关于 vector 和 for/while 循环的 C++ 新手

c++ - 我可以使用 QSortFilterProxyModel 创建摘要/聚合模型吗?

qt - 控制附加到 QToolButton 的弹出式 QWidget

c++ - gettext字符编码

c++ - qt5 qml c++交互

c++ - 将 std::shared_ptr 隐式转换为类型

QML - 2 个动态创建的元素之间的交互

c++ - 在 QT5 中允许用户在运行时调整小部件的大小