QObject::connect -- Event -- QFtp stateChange(int)

QObject::connect -- Event -- QFtp stateChange(int)

本文关键字:int stateChange Event connect QObject QFtp      更新时间:2023-10-16

我是一名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";
    }
}

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

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