当前位置: 代码迷 >> QT开发 >> QT 怎么高效的显示图片
  详细解决方案

QT 怎么高效的显示图片

热度:139   发布时间:2016-04-25 03:19:16.0
QT 如何高效的显示图片
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]);
    }
}
实际操作显示太慢了,想问问各位大神有什么效率更高的办法。
------解决方案--------------------
采用多线程的方式,加载图片,可以开启30-50个线程,每个线程的任务就是加载 图片数据至缓冲列表中,还需要建立好每个图片的缓冲对应显示控件的关系(如图片1 显示在控件1上之类的)。


------解决方案--------------------
楼主为什么不使用Qt下的delegate呢?显示一万张也行,delegate的出现就是为了解决大量数据显示而生
  相关解决方案