QPixmap 的问题

qdbje 2010-09-28 06:20:54
大家好!
现有读取QPixmap的函数两个个函数getPixmap1 和getPixmap2
/////////////getPixmap1///////////////
QPixmap getPixmap1(QString path)
{
QPixmap pixmap;

if(!path.isEmpty())
{
pixmap.load(path);
}
return pixmap
}
//////////////getPixmap2//////////////////
QPixmap getPixmap2(QString path)
{
QPixmap pixmap;

QByteArray pData;
QFile *file=new QFile(path);
file->open(QIODevice::ReadOnly);
pData=file->readAll();

if(!pixmap.loadFromData(pData))
{
qDebug()<<"error in loadFromData";
}
return pixmap
}


有一个数据结构
QList<QPixmap> pixmapList;
foreach( .... path)
{
QPixmap tmp =getPixmap2(paht);
pixmapList<< temp.scaled(size);

}
后显示这些数据这个pixmapList

for(int i=0; i<pixmaplist.size();i++)
{
painter->drawPixmap(....,,pixmapList.at(i*));
}
现状是,使用getPixmap1可以正常显示图片
而使用getPixmap2 显示的那些图片均为最后一张。
请问我应该如何修改,在板子上(4.6.1)有这个问题,在linux下4.6.2的版本下,没有这个问题。
...全文
636 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
车太靓 2010-11-19
  • 打赏
  • 举报
回复
按照楼上方法尝试
DIE654456 2010-09-30
  • 打赏
  • 举报
回复
//////////////getPixmap2//////////////////
QPixmap getPixmap2(QString path)
{
QPixmap pixmap;

QByteArray pData;
QFile *file=new QFile(path);
file->open(QIODevice::ReadOnly);
pData=file->readAll();

if(!pixmap.loadFromData(pData))
{
qDebug()<<"error in loadFromData";
}
return pixmap;
}

这两个函数都是有隐患,应该返回一个引用。
还有读取文件可以通过QDataStream和QTextStream来读取,试一试。

16,240

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧