이 코드 :C++/QT - 이러한 슬롯 - 상속
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: No such slot
QCPAxis::MyAxis::rescale(QCPRange)
in 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:
로 선언 변경 : 여기
ui->customPlot->axisRect()->addAxis(QCPAxis::atLeft)
이 QCPAxis
아닌 MyAxis
클래스를 반환
힌트 : Qt Creator 자동 완성을 사용하여 SIGNAL 및 SLOT 매크로를 채 웁니다. 그것이 거절하면, 어딘가에 문제가 있습니다. 자동 완성 기능을 사용하면 잠재적 인 오타를 피할 수 있습니다. – hyde