QObject :: connect - 事件 - QFtp stateChange(int)

时间:2011-12-27 12:56:09

标签: c++

所以我是C#开发人员,我正在学习C ++(作为业余爱好)。

我使用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";
    }
}

请告诉我原因。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

是的,如果您忘记了,请继承QObject,并且不要忘记将Q_OBJECT宏放入类定义的private部分(因为您声明了自己的广告位)< / p>

相关问题