Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in
read-only mode
.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
我参照QT给的zoomlinechart的例子做了一个缩放Qchart的程序,结果出了点问题。
官方给的例子QChart是放置在QChartView中的,缩放的时候,窗口尺寸不受影响。
而我自己的是放在QGraphicsview中,放大的话,窗口边缘会出现滚动条,有谁知道,这是什么问题嘛?
这是案例的代码:
Chart *chart = new Chart();
chart->addSeries(series);
chart->setTitle("Zoom in/out example");
chart->setAnimationOptions(QChart::SeriesAnimations);
chart->legend()->hide();
chart->createDefaultAxes();
ChartView *chartView = new ChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);
QMainWindow window;
window.setCentralWidget(chartView);
window.resize(400, 300);
window.grabGesture(Qt::PanGesture);
window.grabGesture(Qt::PinchGesture);
window.show();
return a.exec();
这是我自己的代码:
if(!Test)
delete Test;
Test=nullptr;
Test=new Baseview(ReturnData(),0);
Test->setRenderHint(QPainter::Antialiasing);
//Test->setMinimumSize(640,480);
this->resize(600,600);
this->setCentralWidget(Test);
Test=new Baseview(ReturnData(),0);
Test->setRenderHint(QPainter::Antialiasing);
//Test->setMinimumSize(640,480);
this->setCentralWidget(Test);
Baseview::Baseview(const QStringList &clist,QWidget *parent):QGraphicsView(new QGraphicsScene,parent),IsPressed(false),pPos(0,0)
........
m_chart=new QChart;
.......
scene()->addItem(m_chart);
......
如果是的話,Qt Zoom Line Example是用QChart本身提供的zoom
兩個實作應該是不一樣的
QGraphicsView的zoom是將整個QGraphicsScene縮放( 包括被放在裡面的QChart )
QChart的zoom只將它裡面的chart縮放
@sildtfine
我後來發現,用QGraphicsView放大會出現滾輪是因為當QChart zoomIn 的時候QGraphicsScene的sceneRect會變大
而QGraphicsView 預設如果QGraphicsScene 的sceneRect 太大,便會出現滾動條。如果要解決是可以手動用QGraphicsView::setSceneRect來處理
我想QChartView應該是已經處理這方面的問題了