问题描述
#include <QObject>#include 'mainwindow.h'#include 'ui_mainwindow.h'#include 'addDialog.h'#include <QMessageBox>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ui->setupUi(this);setFixedSize(this->width(), this->height());addDialog addD();editDialog editD();QObject::connect(&editD, &editDialog::sendData, this, &MainWindow::get_data_from_edit); QObject::connect(&addD, &addDialog::sendData, this, &MainWindow::get_data_from_add);}
两个connect都报错
error: no matching function for call to ’MainWindow::connect(editDialog (*)(), void (editDialog::*)(QString), MainWindow*, void (MainWindow::*)(QString))’ this, &MainWindow::get_data_from_edit); ^In file included from D:QT5.9mingw53_32includeQtCore/QObject:1:0, from mainwindow.cpp:3:error: no type named ’type’ in ’struct std::enable_if<false, QMetaObject::Connection>’
所使用类均继承QObject并包含Q_OBJECT
使用旧语法仍然报错
问题解答
回答1:addDialog addD();editDialog editD();这两句是实例2个对象嘛?把()去掉试试。
回答2:楼主,你把MainWindow::get_data_from_edit和MainWindow::get_data_from_add的方法声明贴出来。