QT 照片列表界面 显示本地的特征图片
作者:互联网
2、QStringList 文件名list //先从本地获取,等到连接网络之后 从服务器接收图片路径名称
①好像没有初始化,直接在函数里使用即可
②添加文件名称的函数,固定从/root/car文件夹中读取,不需要传参//读取目录,获取图片名称
③打开图片目录
QDir dir("/root/Car");
if(!dir.exists())
{
qDebug()<<"photofileDir not exist";
return;
}
③.1判断目录下文件类型,筛选出需要的文件后缀,目前只有一种jpg格式,就不需要筛选了:
//查看路径中后缀为.cfg格式的文件 9 QStringList filters; 10 filters<<QString("*.cfg"); 11 dir.setFilter(QDir::Files | QDir::NoSymLinks); //设置类型过滤器,只为文件格式 12 dir.setNameFilters(filters); //设置文件名称过滤器,只为filters格式
④计算目录中图片的总数
int dir_count=dir.count();
if(dir_count <=0)
{
return;
}
⑤通过for循环,append函数 将目录下文件名称,读取到图片list中
for(int i=0;i<dir_count;i++)
{
QString photo_name=dir[i];
photoNameList->append(photo_name);
}
2.QListWidget 照片列表
void showImageList();//显示照片墙函数
为了使调整窗口大小时元素自动重新布局填充要使用 setResizeMode(ResizeMode mode) ,这里取Adjust。
setResizeMode(QListView::Adjust); 自适应窗口大小
//设置单元项的图片大小
//设置单元项间距
//设置不能移动
for(auto tmp : fileNames)//报错了 改成for(inti0;i<list.size();i++); 101 { 102 //定义QListWidgetItem对象 103 QListWidgetItem *imageItem = new QListWidgetItem; 104 //为单元项设置属性 105 imageItem->setIcon(QIcon(tmp)); 106 //imageItem->setText(tr("Browse")); 107 //重新设置单元项图片的宽度和高度 108 imageItem->setSizeHint(QSize(100,120)); 109 //将单元项添加到QListWidget中 110 imageList->addItem(imageItem); 111 } 112 //显示QListWidget 113 imageList->show();
文件名QStringList使用->at(i)获取元素值
遇到的问题:
1、如果不加后缀筛选的代码,取不到图片名称,还是得加上
2、文件名需要拼接
3、图片自适应QIcon大小,有点坑 图片大小不能设置成一致的
解决方案:QPixmap可以用scale(w.h)设置大小
imageItem->setIcon(QIcon(QPixmap(photo_name).scaled(130,130)));
问题:图片名称 所占长度 需要计算,但是还没想到怎么办
标签:imageItem,界面,QT,photo,列表,设置,目录,dir,图片 来源: https://www.cnblogs.com/hhy-2216/p/15970248.html