for(int i = 0;i < fileNames.count();i++) { QStringList strSplitList = fileNames.at(i).split("/"); QString str; for(int j = 0;j < strSplitList.count();j++) { str = strSplitList.at(strSplitList.count()-1); } m_MfileNameAndFilePath.insert(str,fileNames.at(i)); QListWidgetItem *item = new QListWidgetItem(str); item->setSizeHint(ITEM_SIZE); // Check if the file is an image if (str.endsWith(".jpg") || str.endsWith(".jpeg") || str.endsWith(".png") || str.endsWith(".bmp")) { QPixmap pixmap(fileNames.at(i)); QIcon icon(pixmap); item->setIcon(icon); } ui->listWidget->insertItem(i,item); }这段代码如何修改才能让图片一直显示在layout中
时间: 2023-06-14 18:02:42 浏览: 135
pyecharts.datasets.map-filenames.json 文件
你可以在这段代码中添加一个QVBoxLayout,然后将QListWidgetItem添加到该布局中,从而使其一直显示在layout中。
具体的修改方法如下:
1. 在ui文件中添加一个QVBoxLayout,将其命名为listLayout。
2. 在代码中使用listLayout替换ui->listWidget。
3. 将QListWidgetItem添加到listLayout中,而不是ui->listWidget中。
修改后的代码如下所示:
```
QVBoxLayout *listLayout = new QVBoxLayout(ui->centralWidget);
for(int i = 0;i < fileNames.count();i++) {
QStringList strSplitList = fileNames.at(i).split("/");
QString str;
for(int j = 0;j < strSplitList.count();j++) {
str = strSplitList.at(strSplitList.count()-1);
}
m_MfileNameAndFilePath.insert(str,fileNames.at(i));
QListWidgetItem *item = new QListWidgetItem(str);
item->setSizeHint(ITEM_SIZE);
// Check if the file is an image
if (str.endsWith(".jpg") || str.endsWith(".jpeg") || str.endsWith(".png") || str.endsWith(".bmp")) {
QPixmap pixmap(fileNames.at(i));
QIcon icon(pixmap);
item->setIcon(icon);
}
listLayout->addWidget(item); // 将QListWidgetItem添加到listLayout中
}
```
这样修改后,图片就可以一直显示在layout中了。
阅读全文