Qt 5.7 -> 5.8 将 QIcon 添加到 QListwidget
Posted
技术标签:
【中文标题】Qt 5.7 -> 5.8 将 QIcon 添加到 QListwidget【英文标题】:Qt 5.7 -> 5.8 add QIcon to QListwidget 【发布时间】:2017-05-19 08:07:24 【问题描述】:我想将我的项目从 Qt 5.7 升级到 Qt5.8。我有一个在QListWidget
上显示图像的功能。
我的项目,查看器从图像制作缩略图并将其转换为QIcon
。创建QIcon
后,通过插入新的QListwidgetItem
将其添加到QListWidget
。
在 5.7 中运行良好,但在 5.8 中不显示缩略图。
下面是代码
QIcon
到 QListWidget
:
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
从头到尾都已经是“假”了
【参考方案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 之间的设置过程是主要问题。
【讨论】:
以上是关于Qt 5.7 -> 5.8 将 QIcon 添加到 QListwidget的主要内容,如果未能解决你的问题,请参考以下文章
qt中怎样把一个控件即加入Qicon变量,又加入文字?如下图
MySQLMySQL 5.7 的生命周期将于2023年结束,大家来拥抱 MySQL 5.8 吧
MySQLMySQL 5.7 的生命周期将于2023年结束,大家来拥抱 MySQL 5.8 吧