我开始与现有的各种信号打,我设法让我的示例程序为所需的工作。我不确定这是否是经过批准的方法,或者它是否可以扩展,但对我有用。
有一件事对我来说并不是特别清楚,QChartView上的滚动条不会滚动正确的东西。他们滚动整个QChart,轴和所有。要滚动图表中的缩放数据,您需要添加一个单独的滚动条,然后调用QChart的scroll()函数以响应valueChanged信号。 (我没有对此进行测试,但可以改为拨打QAxis的setRange(min, max)。)
这里是显示两个正弦波周期并允许橡皮筋缩放的代码。放大时,您可以沿波浪来回滚动。
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
, scrolling(false)
{
ui->setupUi(this);
QLineSeries *s = new QLineSeries;
QChart *c = new QChart;
for (double theta = 0.0; theta < 4.0 * M_PI; theta += M_PI/50.0)
s->append(theta/M_PI, sin(theta));
c->addSeries(s);
c->createDefaultAxes();
c->legend()->hide(