ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

QT 照片列表界面 显示本地的特征图片

2022-03-06 04:31:07  阅读:245  来源: 互联网

标签:imageItem 界面 QT photo 列表 设置 目录 dir 图片


 

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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有