• 3639阅读
  • 1回复

背景内存问题,请大家指教(已解决) [复制链接]

上一主题 下一主题
离线sikylori
 

只看楼主 倒序阅读 楼主  发表于: 2009-05-08
   本人做了一个测试,当按钮按下时,切换窗口的背景图片,却发现第切换一次内存占用量就会增加,直到增加到一个最大值,请问有什么方法可以切换了背景图片时不需要增加内存量,代码如下:
void testQT::buttonClick()
{
    if (picNum == 0)
    {
        background.load("./images/home.png");         //内存占用量:15 324KB
        update();
        picNum++;
    }
    else if (picNum == 1)
    {
        background.load("./images/talk.png");            //内存占用量:16 892KB
        update();
        picNum++;
    }
    else if (picNum == 2)
    {
        background.load("./images/movie.png");       //内存占用量:16 906KB
        update();
        picNum++;
    }
    else
    {
        background.load("./images/leave.png");        //内存占用量:18 392KB
        update();
        picNum = 0;
    }
}

void testQT::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
    painter.drawPixmap(0,0,background);
}

怎么只有一个QPixmap但导入多张不同图片时内存量会增加,请高人指教?
[ 此帖被sikylori在2009-07-07 16:54重新编辑 ]
离线sikylori

只看该作者 1楼 发表于: 2009-05-08
哎......,等半天每人回答,我来答回它吧,看帮忙找到的,在 background.load()之前先将cache内的QPixmap清空即可,即在load()前加入一句
QPixmapCache::clear();
快速回复
限100 字节
 
上一个 下一个