我可以运行该程序,但按钮无法访问发送功能。我得到这个提示:QObject :: connect:没有这样的插槽(Qt,C++)
的QObject ::连接:没有这样的插槽中的Mail ::发送(emailInput,pwdInput)
有人知道什么是我的错?
mail.h:
#ifndef MAIL_H
#define MAIL_H
#include <QWidget>
namespace Ui {
class Mail;
}
class Mail : public QWidget
{
Q_OBJECT
public:
explicit Mail(QWidget *parent = 0);
~Mail();
public slots:
void send(std::string email, std::string pwd);
private:
Ui::Mail *ui;
};
#endif // MAIL_H
mail.cpp:
Mail::Mail(QWidget *parent) :
QWidget(parent)
{
QLineEdit *edt1 = new QLineEdit(this);
grid->addWidget(edt1, 0, 1, 1, 1);
std::string emailInput = edt1->text().toStdString();
...
QObject::connect(acc, SIGNAL(clicked()),this, SLOT(send(emailInput, pwdInput)));
}
void Mail::send(std::string email, std::string pwd){
...
}
您的语法错误。你想'SLOT(发送(std :: string,std :: string))' –
http://stackoverflow.com/a/26422155/1421332 – Silicomancer