【问题标题】:Qt 5.7 -> 5.8 add QIcon to QListwidgetQt 5.7 -> 5.8 将 QIcon 添加到 QListwidget
【发布时间】:2017-05-19 08:07:24
【问题描述】:

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

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

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

下面是代码

QIconQListWidget:

QIcon tmpIcon(pathOfImage);

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

是什么导致了这种情况发生?如何调整到 5.8?


  • 在 5.7 中它可以工作:

  • 在 5.8 中没有:


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

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

在 5.7 中不影响 QListwidget!

【问题讨论】:

  • 看起来属性 uniformItemSizes 以某种方式设置为 true 导致了这个问题。
  • 谢谢。我会调查的!
  • ui.listWidget->setUniformItemSizes(false);我使用了上面的代码,但它没有工作TT
  • 从头到尾都已经是“假”了

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


【解决方案1】:

我做了一个实验。

    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 之间的设置过程是主要问题。

【讨论】:

    猜你喜欢
    • 2014-11-29
    • 1970-01-01
    • 1970-01-01
    • 2017-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-16
    • 1970-01-01
    相关资源
    最近更新 更多