当前位置: 代码迷 >> QT开发 >> widget显示点图片如何就这么难呢
  详细解决方案

widget显示点图片如何就这么难呢

热度:55   发布时间:2016-04-25 03:26:57.0
widget显示点图片怎么就这么难呢
由于需要,我使用QGraphicsWidget显示图片,代码如下,
mywidget.h:
#ifndef MYWIDGET_H
#define MYWIDGET_H

#include <QGraphicsWidget>
#include<QPixmap>
class MyWidget : public QGraphicsWidget
{
public:
    MyWidget(QString s);
    QRectF boundingRect() const;
    void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget*widget);
private:
    QPixmap p;
};

#endif // MYWIDGET_H


mywidget.cpp:
#include "mywidget.h"
#include<QPainter>
MyWidget::MyWidget(QString s)
{
    p.load(s);
}

QRectF MyWidget::boundingRect() const
{
    qreal penWidth = 1;
    return QRectF(0 - penWidth / 2, 0 -penWidth / 2,
               20 + penWidth, 20 + penWidth);
}


void MyWidget::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,QWidget *widget)
{
    Q_UNUSED(option);  //标明该参数没有使用
    Q_UNUSED(widget);
    //painter->setBrush(Qt::red);
    //painter->drawRect(0,0,20,20);
    painter->drawPixmap(0,0,p);
}

最后我把它们放在QGraphicsView中显示。这段代码看起来是对的,而且显示一些图像也是对的。
问题是当我显示1000多张大尺寸图像时,程序报错:


assert bitmap in file image qnativeimage.cpp


这是为什么?
------解决方案--------------------
难道有限制?
  相关解决方案