2011-12-27 102 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部分(因爲你聲明自己的插槽)

相關問題