E:\sdn\addd\studentManager\mainwindow.cpp:28: error: no matching function for call to 'MainWindow::connect(QLineEdit&, void (LoginDialog::*)(), QString&, void (MainWindow::*)(QString))' connect(s_id, &LoginDialog::on_buttonLogin_clicked, data, &MainWindow::receiveData); ^
时间: 2024-02-14 11:05:49 浏览: 75
云杉亓亚烜:深入挖掘SDN,打造LiveCloud弹性私有云管理平台
这个错误是因为你在连接信号和槽的时候,使用了错误的参数类型或者参数数量不匹配。根据错误提示,可以看到你在第 28 行代码中的 `connect` 函数调用中,有以下两个参数不匹配:
1. 第二个参数 `&LoginDialog::on_buttonLogin_clicked` 是一个无参函数指针,但是你需要传递一个带参数的信号函数。
2. 第四个参数 `&MainWindow::receiveData` 是一个带参数的槽函数,但是你需要传递一个无参槽函数。
因此,你需要检查你的信号和槽函数的参数类型和数量是否正确,并且保证它们匹配。如果你需要连接一个带参数的信号和槽,可以使用 `SIGNAL` 和 `SLOT` 宏来实现。例如:
```
connect(s_id, SIGNAL(returnPressed()), data, SLOT(receiveData(QString)));
```
其中,`returnPressed()` 是 `QLineEdit` 类的一个信号,`receiveData(QString)` 是 `MainWindow` 类的一个槽函数。这个示例代码将在文本框中按下回车键时触发 `receiveData(QString)` 槽函数,并将文本框中的文本作为参数传递给该函数。
阅读全文