Qt 在可选列表中显示来自资源的图标

Qt Show Icons from Resource in a selectable list

我的 Qt 应用程序资源中有 200 多个图标。 我想知道如何向用户列出和显示图标,以便用户可以选择一个作为用户头像。我的资源中的文件是 PNG 文件,我需要将它们的大小调整为 32x32 并将它们显示给用户,以便用户可以选择一个。我不知道哪个组件对它有用,也不知道如何在 Qt 中遍历资源前缀。

您可以使用QListWidget在列表中像图标一样显示图像。还有一些其他可能的方法,例如使用 QTableViewQListView 需要不同的实现。但是对于更简单的 QListWidget 的情况,你应该将它的视图模式设置为 IconMode,设置你想要的图标大小,并将资源中的图标一个一个地添加到列表小部件中。假设图标位于前缀名称为 icon1icon2、... 的资源中。然后它可以像:

ui->listWidget->setViewMode(QListWidget::IconMode);

ui->listWidget->setIconSize(QSize(32,32));

for(int i = 1; i<=200;i++)
{
   ui->listWidget->addItem(new QListWidgetItem(QIcon(QString(":/res/icon%1").arg(i)),QString("icon%1").arg(i)));
}