gpt4 book ai didi

c++ - 从 QCustomPlot 派生的类的构造函数

转载 作者:太空宇宙 更新时间:2023-11-04 13:20:26 24 4
gpt4 key购买 nike

我尝试从 QCustomPlot 类派生,然后将一个小部件提升到该特定类,但在构建时显示以下错误。Graphytti/myqcustomplot.cpp:2: 错误:未定义对“MyQCustomPlot 的 vtable”的引用:-1: error: collect2: error: 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 问题,因此支持该答案。

最佳答案

每次创建Q_OBJECT类时,您都应该运行qmake来生成所需的moc cpp文件。

Build -> Run qmake

关于c++ - 从 QCustomPlot 派生的类的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35535655/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com