所以我是一名C#开发人员,我正在学习C++ (作为业余爱好)。
我使用Qt来实现这一点,并且为了练习,我想创建一个FTP客户端,但我有一个问题。
当ftp连接状态改变时,我创建了一个事件,所以我想使用event stateChanged(int)
但我有个问题:
Error: no matching function for call to 'QObject::connect(QFtp*&, const char*, Ftp* const, const char*)'我的代码:
#include "ftp.h"
QString _host;
QString _User;
QString _Pass;
Ftp::Ftp(QObject *parent,QString host,QString user,QString pass)
{
ftp =new QFtp(parent);
QObject::connect(ftp,SIGNAL(stateChanged(int)),this,SLOT(FtpStateChang(int)));
_host = host;
_User = user;
_Pass = pass;
}
void Ftp::Connect()
{
ftp->connectToHost(_host,21);
ftp->login(_User,_Pass);
}
void Ftp::FtpStateChang(int state)
{
//EVENT
}
QString Ftp::CheckConnection()
{
Connect();
switch(ftp->state())
{
case QFtp::LoggedIn:
return "LoggedIn";
case QFtp::Unconnected:
return "Unconnected";
case QFtp::Connecting:
return "Connecting";
case QFtp::Closing:
return "Closing";
}
}请告诉我为什么。谢谢你的帮助。
发布于 2012-01-21 07:56:07
可以,如果您忘记并不要忘记将Q_OBJECT宏放在类定义的private部分(因为您声明了自己的插槽),则从QObject继承。
https://stackoverflow.com/questions/8644903
复制相似问题