其他分享
首页 > 其他分享> > QT 照片列表界面 显示本地的特征图片

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