我尝试从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问题,因此也没有回答。