当我将QGraphicsPixmapItem添加到场景中并且在第一次鼠标点击程序冻结之后。为什么?或者我如何从Qt的内部计算中排除这一点(如果我知道背后会发生什么......)
*的.h
#include <QtWidgets/QMainWindow>
#include "ui_bigqgraphicsscene.h"
class BigQGraphicsScene : public QMainWindow
{
Q_OBJECT
public:
BigQGraphicsScene(QWidget *parent = 0);
~BigQGraphicsScene();
private slots:
void on_pushButton_clicked();
private:
Ui::BigQGraphicsSceneClass ui;
QImage imgOrig;
};
*。CPP
#include "bigqgraphicsscene.h"
#include <QFileDialog>
#include <QSet>
#include <QDebug>
#include <QGraphicsPixmapItem>
BigQGraphicsScene::BigQGraphicsScene(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
ui.graphicsView->setScene(new QGraphicsScene());
}
BigQGraphicsScene::~BigQGraphicsScene(){}
void BigQGraphicsScene::on_pushButton_clicked()
{
QString s = "d:/!Qt/ImageNumber/BigQGraphicsScene/TestPic/fastole_bdr.png";
if (s.length())
{
imgOrig.load(s);
QGraphicsPixmapItem *itm = new QGraphicsPixmapItem();
itm->setPixmap(QPixmap::fromImage(imgOrig));
ui.graphicsView->scene()->setItemIndexMethod(QGraphicsScene::NoIndex);
ui.graphicsView->scene()->addItem(itm);
ui.graphicsView->scene()->setSceneRect( imgOrig.rect() );
}
}
scene()->setItemIndexMethod(QGraphicsScene::NoIndex);
- 没有帮助......
几乎透明的pix例如 - fastole_bdr.png
答案 0 :(得分:0)
您可以在后台加载图片吗?您正在从磁盘读取,然后将图像处理为QT在UI线程内部使用的任何格式,因此应用程序对较大图像没有响应时并不特别令人惊讶。