读取一个目录里的图片,放在QTableWidget里面显示,代码如下:
#include <QtCore>
#include <QtGui>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QMainWindow window;
QTableWidget* tb = new QTableWidget(0,1,&window);
tb->setGeometry(0,0,400,300);
QDir dir("/data");
int i=0;
foreach(QFileInfo picFile,dir.entryInfoList(QStringList("*.jpg"))){
QLabel *labelPic = new QLabel();
labelPic->setPixmap(QPixmap(picFile.absoluteFilePath()));
tb->insertRow(i);
tb->setCellWidget(i,0,labelPic);
i++;
}
window.show();
return a.exec();
}
/data目录里有500张图片,这段代码运行之后,会占用非常大的内存.
将table的滚动条拖到下面, 发现有些图片没显示,拖放一下窗口才能显示,但此时上面的图片就又显示不出来了.似乎是内存不够,拖放时激活了table的redraw才显示出图片.
请问这个内存的问题怎么解决呢?
Qt是4.6.3.