我无法在qlistview类上实现缩略图视图

时间:2017-12-24 18:14:12

标签: c++ qt5.6

我正在尝试构建一个应用程序,我将选择一个目录(使用基于qtreeview模型的小部件),并且在选择文件夹时,其包含的图像文件将显示在基于qlistview模型的小部件中(以及稍后执行任务)选择某个图像后)。我已成功将图像文件显示为qlistview(基于模型)中的图标,但我需要在各自的缩略图中显示图像,而不是listView上的图标。

任何人都可以帮助我吗?我已经签出了 - http://doc.qt.io/qt-5/qlistview.html:这里只能实现图标(ViewMode为IconMode),而不是缩略图。

构造函数内部 -

QString sPath = "F:/";
dirModel = new QFileSystemModel (this);                     // setting up 
the directory model on tree view
dirModel -> setRootPath(sPath);
ui->treeView->setModel(dirModel);

fileModel = new QFileSystemModel (this);                    // setting up 
the file model on list view
fileModel ->setFilter(QDir::NoDotAndDotDot | QDir::Files);
fileModel -> setRootPath(sPath);

QStringList filters;            // list view filters to show only image 
files
filters << "*.JPG" << "*.PNG" << "*.ico";
fileModel->setNameFilters(filters);
fileModel -> setNameFilterDisables(false);
ui->listView->setModel(fileModel);

关于事件功能 -

void MainWindow::on_treeView_clicked(const QModelIndex &index)
{
QString sPath = dirModel->fileInfo(index).absoluteFilePath();

ui->listView->setRootIndex(fileModel->setRootPath(sPath));

folderPath = sPath;
}

void MainWindow::on_listView_clicked(const QModelIndex &index)
{
if(!folderPath.isEmpty())
    {
    QString filename = fileModel->fileInfo(index).absoluteFilePath();;
    QPixmap pix(filename);

    int w = ui->imgLabel->width ();
    int h = ui->imgLabel->height ();
    ui->imgLabel->setPixmap (pix.scaled (w,h,Qt::KeepAspectRatio));
}
}

屏幕截图 - no_thumbnail

0 个答案:

没有答案