Qt 5.7 - > 5.8将QIcon添加到QListwidget

时间:2017-05-19 08:07:24

标签: c++ qt qt5.7 qt5.8 qicon

我想将我的项目从Qt 5.7升级到Qt5.8。我有一个功能,可以在QListWidget上显示图像。

我的项目,观众从图像中制作缩略图并将其转换为QIcon。创建QIcon后,通过插入新的QListWidget将其添加到QListwidgetItem

在5.7中运行良好,但在5.8中没有显示缩略图。

Belows是代码

QIconQListWidget

QIcon tmpIcon(pathOfImage);

ui.listWidget->addItem(new QListWidgetItem(tmpIcon, pathOfImage));

是什么让这种情况发生的?如何调整为5.8?

  • 在5.7中它起作用:

    In 5.7 it works!

  • 在5.8中它没有:

    In 5.8 ....

但是现在,我发现小尺寸的PNG可以在5.8中显示。

我不知道是什么问题。可能是图像的大小或格式?

在5.7中不影响QListwidget

1 个答案:

答案 0 :(得分:0)

我做了一个实验。

    QListWidgetItem* newItem = new QListWidgetItem();
    newItem->setIcon(tmpIcon);
    newItem->setText(pathOfImage);

在此之后,我尝试获取newItem(QListWIdgetItem)的图标并将其保存到png。

   QIcon te2 = newItem->icon();
   QPixmap test = te2.pixmap(te2.actualSize(QSize(1024, 1024)));
   QFile file1(te + "yourFile.png");
   file1.open(QIODevice::WriteOnly);
   test.save(&file1, "PNG");

无法保存常规JPG文件,但只能正确保存小徽标png文件。我认为在QIcon和QListWitgetItem之间设置进程是主要问题。