MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); // 设置标题 this->setWindowTitle("Student Manager"); // 设置窗口大小 this->setMaximumSize(1000, 500); this->setMinimumSize(1000, 500); // 实例化学生管理对象 manager = new studentManager; // 登录成功之后获取到学生信息 LoginDialog loginDialog ; connect(&loginDialog, &LoginDialog::sendData, this, &MainWindow::receiveData); QString maybe=receiveData(); stu = manager->getStudent(str); } QString MainWindow::receiveData(const QString& data) { Todo: QString str = QString::fromStdString(data.toStdString()); /*stu = manager->getStudent(data);*/ qDebug()<<("meizuozhege "); return str; }
时间: 2024-03-02 15:54:29 浏览: 63
Qt开发实战:基于Qt的图书管理系统的实验心得与案例解析
根据你提供的代码,我发现 `receiveData()` 方法在定义时有一个参数 `const QString& data`,但是在调用时却没有传递任何参数。导致出现了错误提示 `no matching function for call to 'MainWindow::receiveData()'`。
你需要在调用 `receiveData()` 方法时,传递一个 `QString` 类型的参数,例如:
```
QString maybe = receiveData("hello world");
```
或者你可以修改 `connect` 语句,将 `receiveData` 方法的参数类型改为 `void`,然后在方法内部获取数据,例如:
```
connect(&loginDialog, &LoginDialog::sendData, this, &MainWindow::receiveData);
// ...
void MainWindow::receiveData() {
QString data = loginDialog.getData(); // 假设有一个方法可以获取数据
// 处理数据...
}
```
需要注意的是,在第二种方式中,你需要在 `MainWindow` 类中定义一个方法 `getData()`,用于获取数据。
阅读全文