很多的时候我们需要制作类似手机的中的电子相框, 可以用listwidget 控件实现 直接上代码
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); this->move(0,0); // ui->listWidget->resize(365,400); //设置QListWidget的显示模式 ui->listWidget->setViewMode(QListView::IconMode); //设置QListWidget中单元项的图片大小 ui->listWidget->setIconSize(QSize(278,278)); //设置QListWidget中单元项的间距 ui->listWidget->setSpacing(10); //设置自动适应布局调整(Adjust适应,Fixed不适应),默认不适应 ui->listWidget->setResizeMode(QListWidget::Adjust); //设置不能移动 ui->listWidget->setMovement(QListWidget::Static); connect(ui->listWidget,SIGNAL(itemClicked(QListWidgetItem*)),this,SLOT(listWidgetClicked(QListWidgetItem*))); //显示图像空间的照片数量 // QString imageWorkPath=imagePATH; // /home/wanghuixi/keysiQt/workspace QDir * imagePath=new QDir("./123/"); QStringList filter; filter << "*.jpg"<< "*.png" ; QList<QFileInfo> *fileInfo=new QList<QFileInfo>(imagePath->entryInfoList(filter)); int imageSum = fileInfo->count();//the file have "."and ".." file QList<QString> fileNames; fileNames.clear(); if(imageSum == 0) { return; } for(int i=0;i<imageSum;i++) { fileNames.append(fileInfo->at(i).filePath()); } for(auto tmp : fileNames) { qDebug()<<tmp<<endl; ui->listWidget->addItem(new QListWidgetItem(QIcon(tmp),"Tornado")); } } MainWindow::~MainWindow() { delete ui; } void MainWindow::listWidgetClicked(QListWidgetItem *item) { qDebug() << "ddsfsdf" << " "<<item->text() << " " << ui->listWidget->currentIndex().row() << " "<< ui->listWidget->count()<< endl; ui->listWidget->removeItemWidget(item); delete item; }
运行的结果就是
可以点击指定的照片会返回照片的编号 我们可以根据照片的编号 可以干很多事情 。
工程链接
https://pan.baidu.com/s/1kYtFou2q-xu6SapUzA6TTw