从QCustomPlot派生的类的构造方法

时间:2016-02-21 11:43:25

标签: c++ qt qt-creator

我尝试从QCustomPlot类派生,然后将窗口小部件提升到该特定类,但在建立它时显示以下错误。 Graphytti / myqcustomplot.cpp:2:错误:未定义引用`vtable for MyQCustomPlot' :-1:错误:collect2:错误:ld返回1退出状态

以下是myqcustomplot.h文件的内容

#ifndef MYQCUSTOMPLOT_H
#define MYQCUSTOMPLOT_H
#include "qcustomplot.h"
#include<QPoint>
class MyQCustomPlot:public QCustomPlot{

    Q_OBJECT
    QPoint cursor_pos;
    public:
    explicit MyQCustomPlot(QWidget *parent=0);
    void mouseMoveEvent(QMouseEvent * event);
    void paintEvent(QPaintEvent *event);
    void paintCoordinate();


};

#endif // MYQCUSTOMPLOT_H

以下是我的qcustomplot.cpp文件的内容

    #include "myqcustomplot.h"
MyQCustomPlot::MyQCustomPlot(QWidget *parent): QCustomPlot(parent)
 {
    ;
}

void MyQCustomPlot::mouseMoveEvent(QMouseEvent * event)
{
    cursor_pos = event->pos();
    replot();
    QCustomPlot::mouseMoveEvent(event);
}


void MyQCustomPlot::paintEvent(QPaintEvent *event)
{
    QCustomPlot::paintEvent(event);
    paintCoordinate();
}

void MyQCustomPlot::paintCoordinate()
{
    /*double price = getPrice(cursor_pos);
    int y = yAxis->coordToPixel(price);*/
    int y=0;
    QPainter painter(this);

    painter.drawLine(QPoint(50, y), QPoint(width(), y));
    painter.drawLine(cursor_pos, QPoint(cursor_pos.x(), y));

    //painter.drawText(QPoint(0, y), QString::number(price));
    //painter.drawText(cursor_pos, timestamp);
}

经过一番搜索,我意识到我的构造函数可能没有很好地定义,或者存在一些可能的链接问题。

我是Qt开发的新手,希望能帮助解决这个问题。

问题已解决 我不知道究竟是什么问题。我删除了两个文件并使用QtCreator再次添加它们。建造这段时间后没有问题。可能是MOC问题,因此也没有回答。

0 个答案:

没有答案