我有一个要显示的大型 QGraphicsScene,目前由 QGraphicsView 完成。在本地使用时一切都很好,但是一旦我将应用程序与 ssh -X 一起使用,它就非常慢。当然,总是需要传输一些数据,但是如果没有任何变化,例如仅平移图像时,如何节省带宽?
这是我的 QGraphicsView:
#include "graphicsview.h"
#include <QGraphicsPixmapItem>
#include <QPixmap>
#include <QDebug>
#include <QMouseEvent>
#include <QWheelEvent>
#include <cmath>
#include <QPixmapCache>
GraphicsView::GraphicsView(QWidget *parent) :
QGraphicsView(parent)
{
QPixmapCache::setCacheLimit(16777216); //did not do the trick either
this->setMouseTracking(true);
setTransformationAnchor(AnchorUnderMouse);
this->setDragMode(QGraphicsView::ScrollHandDrag);
scene = new QGraphicsScene(this);
setScene(scene);
background = QPixmap(8000,8000);
qDebug() << background.rect();
scene->setSceneRect(background.rect());
scene->setBackgroundBrush(QBrush(background));
show();
}
void GraphicsView::wheelEvent(QWheelEvent* event) {
scale(pow(2,event->delta()/240.0), pow(2,event->delta()/240.0));
}