首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将QFile附加到QList<QFile>

如何将QFile附加到QList<QFile>
EN

Stack Overflow用户
提问于 2019-01-24 15:01:48
回答 2查看 236关注 0票数 0

我正在创建一个包含10到15张图片的post表单数据请求。为了最小化代码,我使用QList来存储图像的位置

我尝试过将QList * QList =新的QList文件更改为QList文件,但是我得到了一个错误

代码语言:javascript
复制
 C:\Qt_Projects\SecretaryApp\handler.cpp:130: error: no matching function for call to 'QList<QFile>::append(QFile*&)'
     files.append((tempfile));
                             ^

下面是函数内部的代码

代码语言:javascript
复制
QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);
multiPart->setBoundary("----WebKitFormBoundary7MA4YWxkTrZu0gW");


QList<QFile>  * files = new QList<QFile>;
QList<QHttpPart> fileparts;


for(int i=0;i<urls.length();i++)
{
    QFile * tempfile = new QFile(urls[i].toLocalFile());

    tempfile->open(QIODevice::ReadOnly);

    qDebug()<<urls[i].toLocalFile();

    files->append((tempfile));  <------error here
}


for(int i=0;i<urls.length();i++)
{
        QHttpPart filePart;
        filePart.setHeader(QNetworkRequest::ContentDispositionHeader,QVariant("form-data; name=\"uploadImage\"; filename="+files[i]->fileName()));
        filePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/jpg"));   // file type header MIME type
        filePart.setBodyDevice(files[i]);

        fileparts.append(filePart);
}


for(int i=0;i<urls.length();i++)
        files[i].setParent(multiPart);

for(int i=0;i<urls.length();i++)
        multiPart->append(fileparts[i]);

QNetworkRequest request((QUrl(sendImageAPI)));

我如何纠正这个错误。这有可能吗?还是我应该更好地使用向量?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-24 15:07:04

变化

代码语言:javascript
复制
QList<QFile>  * files = new QList<QFile>;

代码语言:javascript
复制
QList<QFile * >  files;

或者如果您需要堆上的列表:

代码语言:javascript
复制
QList<QFile *>  * files = new QList<QFile *>;

因为您使用QFile * <-指针

票数 1
EN

Stack Overflow用户

发布于 2019-01-24 15:23:29

除了@Xplatforms答案之外,我还要补充一点,您应该小心使用新的对象所有权。我更喜欢用:

代码语言:javascript
复制
QList<QFile *>  files

如果可以的话。或者,如果之后不手动调用delete,则可能会出现内存泄漏。QFiles是可以的,因为您是通过调用setParent来传递所有权的(假设multiPart被正确删除)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54349589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档