QT C++中根据文件名长度和整数序列对元素进行排序

问题描述 投票:0回答:0

我正在尝试使用 qtsringlist() 对文件名进行排序。但是,我不确定如何在 QT 中使用 normalsorting。输出给我类似的东西 “image1.png” “image10.png” “image100.png”

代替“image1.png”后跟“image2.png”等等。然后,我将列表添加到列表小部件中。下面我附上了我的代码。请帮忙。谢谢。

`void QtWidgetsApplication::displayImagesList() {
    QListWidgetItem *item = new QListWidgetItem();
    QDirIterator it(QStringLiteral("C:\\Users\\Documents\\Visual Studio 2015\\Projects\\cas\\images"),
        QStringList() << "*.png", QDir::Files, QDirIterator::Subdirectories);
    QFileInfo files;
    while (it.hasNext()) {
        QFileInfo file(it.next());
        faList.append(file.fileName());
        
        ui.images->setSortingEnabled(true);
    
        //ui.images->sortItems(Qt::AscendingOrder);
        _files.push_back(file.fileName());

        //cout << file.fileName().toStdString() << "\n";
        //Cout << file.fileName().length() << "\n";


        //if (file.fileName().length() == 17) {
        //  cout << file.fileName().toStdString() << "\n";
        //  
        //}

    }
    ui.images->addItems(faList);
    ui.images->setMinimumWidth(ui.images->sizeHintForColumn(0));
}`
c++ qt qlistwidget
© www.soinside.com 2019 - 2024. All rights reserved.