这段代码:
MyAxis *ax;
ax = static_cast<MyAxis*>(ui->customPlot->axisRect()->addAxis(QCPAxis::atLeft));
connect(ui->customPlot->yAxis, SIGNAL(rangeChanged(QCPRange)),
ax, SLOT(MyAxis::rescale(QCPRange)));
给了我这个运行时错误:
QObject::connect:
QCPAxis::MyAxis::rescale(QCPRange)
plotwindow.cpp:267 中没有这样的插槽
通常当我遇到这样的错误时,我会将Q_OBJECT
宏添加到类并运行qmake
以修复它,但这一次不起作用。
这是该类的声明:
class MyAxis : public QCPAxis
{
Q_OBJECT
public:
void setRefAxis(QCPAxis *refAxis);
void setScale(double newScale);
public Q_SLOTS:
virtual void rescale(const QCPRange &range);
private:
double scale;
QCPAxis *ref;
};
将声明更改为public slots:
没有任何区别。