c++ - 无法在 Qt 中执行 ftp ConnectToHost

标签 c++ qt qtnetwork qftp

#include <qftp.h>
#include <qapplication.h>
#include "test.h"
#include "ui_test.h"
#include <qfile.h>

int main()
{
    QApplication a(argc, argv);
    Test w;
    ftp.connectToHost("192.168.26.129", 21);
    w.show();
    return a.exec();
}

我是 Qt 新手,ftp.connectToHost("192.168.26.129", 21) 在 main 中运行良好,但每当从类 Test 调用时,它都会失败(具有相同的 header 包含)如下。

Test::Test(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::Test)
{   
    ui->setupUi(this);
    QFtp ftp;

    int x = ftp.connectToHost("192.168.26.129", 21);
    ftp.login("User1", "passwd");
}

任何建议都会有帮助。谢谢!

最佳答案

当您的 Test 类构造函数超出范围时,您的 ftp 对象将被销毁。 QFtp::connectToHost 函数不会阻塞并立即返回。 QFtp::login 也是如此。

要解决此问题,您可以使用 new 分配 QFtp 对象:

QFtp *ftp = new QFtp(this);

关于c++ - 无法在 Qt 中执行 ftp ConnectToHost,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20676269/

相关文章:

c++ - 使用 make 自动生成 Moc Qt 头文件

c++ - QLocalServer 不会启动传入连接

C++ - Qt QObject::connect GET 跨类请求使用

c++ - 我可以禁用 std::vector 的复制构造函数吗?

c++ - 断言 `in' 失败 - C++

c++ - 如何在运行时简化代码生成?

c++ - 重构为独立类后,QNetworkRequest (HTTP GET) 不会触发

c++ - 如何使用 stringstream 将字符串同时转换为 int 和 double

c++ - Qt 和 Visual Studio。托盘图标消失

c - 在 Qt-Creator SDK 上以 root 身份运行代码