如何制作QFile列表(QList)?它是如何工作的?

我試圖列出一個QFile列表,我選擇了QList方法,但不確定它是否是好方法。我寫了這段代碼,但它無法構建!

QList<QFile> filesList;

QFile file_1(QString("path/to/file_1"));
QFile file_2(QString("path/to/file_2"));

filesList.append(file_1);
filesList.append(file_2);

    for(auto& file : filesList){
        if(!file.open(QIODevice::ReadOnly)){
            qDebug() << "file is not open.";
        }
}

生成失敗,出現以下錯誤:

error: ‘QFile::QFile(const QFile&)’ is private within this context
     if (QTypeInfo<T>::isLarge || QTypeInfo<T>::isStatic) n->v = new T(t);
                                                                 ^~~~~~~~

使用QList方法制作文件列表以供以后使用,這好嗎?如果是,如何修復我的代碼?

? 最佳回答:

問題似乎是QFile類有一個私有復制構造函數,這意味著它不能被復制。因此,它不能存儲在像QList這樣的容器中。解決這個問題的一種方法是在QList中存儲指向QFile對象的指針,而不是對象本身。

Try this:

QList<QFile*> filesList;

QFile* file_1 = new QFile(QString("path/to/file_1"));
QFile* file_2 = new QFile(QString("path/to/file_2"));

filesList.append(file_1);
filesList.append(file_2);

for(auto file : filesList){
    if(!file->open(QIODevice::ReadOnly)){
        qDebug() << "file is not open.";
    }
}

Updated version:

QList<QFile> filesList;

QFile file_1("path/to/file_1");
QFile file_2("path/to/file_2");

filesList.append(file_1);
filesList.append(file_2);

for(auto& file : filesList){
    if(!file.open(QIODevice::ReadOnly)){
        qDebug() << "file is not open.";
    }
}
主站蜘蛛池模板: 国产一区二区三区亚洲综合| 一区二区免费在线观看| 精品一区二区三区免费毛片爱| 久久综合亚洲色一区二区三区| 国产乱人伦精品一区二区在线观看| 一区二区在线免费视频| 国产午夜精品一区二区三区嫩草| 视频一区二区在线观看| 亚洲一区中文字幕在线电影网 | 熟女大屁股白浆一区二区| 国精产品999一区二区三区有限| 国产一区二区三区影院| 亚洲午夜一区二区电影院| 久久国产精品无码一区二区三区| 国产爆乳无码一区二区麻豆 | 无码少妇精品一区二区免费动态| 无码AⅤ精品一区二区三区| 激情综合丝袜美女一区二区| 国产在线一区视频| 一区二区三区在线播放视频| 日韩AV在线不卡一区二区三区| 欧洲精品码一区二区三区免费看| 亚洲va乱码一区二区三区| 国产精品一区二区av不卡| 精品国产一区二区三区AV性色| 色噜噜AV亚洲色一区二区| 国模无码人体一区二区| 国产成人无码一区二区在线播放| 国产精品视频一区二区三区四| 久久se精品动漫一区二区三区| 一区二区在线观看视频| 亚洲AV日韩综合一区尤物| 欧美日韩综合一区二区三区| 精品一区二区三区无码免费直播| 中文字幕在线一区| 成人影片一区免费观看| 精品一区二区三区自拍图片区| 2021国产精品视频一区| 精品一区二区三区免费毛片| 亚洲AV永久无码精品一区二区国产 | 国产伦精品一区二区三区四区|