QT 如何高效的显示图片

join07 2014-05-23 05:14:35
qt写了一个程序,有个界面需要显示260多张的图片,我现在是使用QLabel来显示图片,一张图片的大小是27k。
界面需要实时跟新。现在采用的办法是把所有的图片先加载到一个数组,不同的图片有27张。,根据需要再显示到QLabel。下面是我加载图片的代码:
bool HuaYangTableWidget::setPixmapOK(int id, QString string)
{
if (HX_Pixmap[id].isNull())
{
QImage image;
image.load( string );
HX_Pixmap[id] = QPixmap::fromImage( image.scaled(QSize(50,100), Qt::KeepAspectRatio) );
return true;
}
return false;
}
显示图片的代码:
void HuaYangTableWidget::setItemBMP(int row, int column, int id)
{
QLabel* plb = NULL;
if (item(row, column) == NULL)
{
plb = new QLabel();
setCellWidget(row, column, plb);
plb->setScaledContents(true);
}
if(plb)
{
if (id>=0 && id <= 12)
plb->setPixmap(HX_Pixmap[id]);
}
}
实际操作显示太慢了,想问问各位大神有什么效率更高的办法。
...全文
2611 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
top_worker 2014-06-05
  • 打赏
  • 举报
回复
可以实现那么多图片显示么,我现在用的主要是显示数据及背景。
引用 4 楼 join07 的回复:
引用 3 楼 Esonpo 的回复:
楼主为什么不使用Qt下的delegate呢?显示一万张也行,delegate的出现就是为了解决大量数据显示而生
我菜鸟没接触过你说的,我查查看。
可以实现那么多图片显示么,我现在用的主要是显示数据及背景。
join07 2014-05-27
  • 打赏
  • 举报
回复
引用 3 楼 Esonpo 的回复:
楼主为什么不使用Qt下的delegate呢?显示一万张也行,delegate的出现就是为了解决大量数据显示而生
我菜鸟没接触过你说的,我查查看。
寒山-居士 2014-05-26
  • 打赏
  • 举报
回复
楼主为什么不使用Qt下的delegate呢?显示一万张也行,delegate的出现就是为了解决大量数据显示而生
join07 2014-05-26
  • 打赏
  • 举报
回复
引用 1 楼 hackenliu 的回复:
采用多线程的方式,加载图片,可以开启30-50个线程,每个线程的任务就是加载 图片数据至缓冲列表中,还需要建立好每个图片的缓冲对应显示控件的关系(如图片1 显示在控件1上之类的)。
我上面的方法不是已经把图片加载到内存了吗?
KeequenLiu 2014-05-23
  • 打赏
  • 举报
回复
采用多线程的方式,加载图片,可以开启30-50个线程,每个线程的任务就是加载 图片数据至缓冲列表中,还需要建立好每个图片的缓冲对应显示控件的关系(如图片1 显示在控件1上之类的)。

16,817

社区成员

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

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