2011-12-27 104 views
0

所以我是C#开发人员,我正在学习C++(作为爱好)。QObject :: connect - 事件 - QFtp stateChange(int)

我使用Qt的,并为实践我想创建一个FTP客户端,但我有一个问题。

创建活动时,FTP连接状态改变,所以我想利用事件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"; 
    } 
} 

请告诉我为什么。感谢您的帮助。

+0

贵'Ftp'类继承QObject的' '? – 2011-12-27 13:07:19

回答

0

是的,从QObject继承,如果你忘了,不要忘记放置Q_OBJECT宏放在类定义的private部分(因为你声明自己的插槽)

相关问题