Top.Mail.Ru
Уведомления
Очистить все

[Решено] "A" Does not name a type

Родион
(@rodion-2)
Level 2

Здравствуйте! 

Решил сделать взаимодействие с графиком в отдельном файле, чтобы удобно было работать с кнопками и самим графиком, но столкнулся с такой проблемой, что при компиляции появляется ошибка does not name a type. Я поискал в гугле, что по этой проблеме говорят (например, https://stackoverflow.com/questions/2133250/x-does-not-name-a-type-error-in-c), понял, что нужно сместить свой класс, так чтобы он собирался раньше чем MainWindow, но я не понимаю, как это сделать, когда класс MainWindow основной, и при перестановке хедеров в mainwindow.h у меня появляется еще большее количество ошибок. 

mianwindow.h

#include <QMainWindow>
#include <QFont>
#include <QVector>
#include <QTimer>
#include <QtMath>
#include "oscilloscope.h"

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE


class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

public slots:
    void setData(const QVector< double > &keys, const QVector< double > &values);
    void replotGraph();

signals:

private:
    Ui::MainWindow *ui;
    Oscilloscope *scope;
};

oscilloscope.h

#include <mainwindow.h>

#define SIZE_SAMPLE  5000
#define TIME_UPDATE  10

class Oscilloscope : public QMainWindow
{
    Q_OBJECT

public:
    Oscilloscope(QWidget *parent = nullptr);
    ~Oscilloscope();

    void Updated();
    void setNotifyInterval(int t);

    double gaussrand(double m, double sko);
    double sin(double f, double amp, int x);

    void setTimeUpdate(int time);

private slots:
    void processing();

signals:
    void notify();
    void setData(const QVector<double> &keys, const QVector<double> &values);
    void replotGraph();
    void setColorPen();
    void setStalyPen();
    void setRandgeAxisX();
    void setRandgeAxisY();

private:
    QTimer *timer;

    QVector<double> x, y;
    QVector<double> xSin, ySin;

    int timeUpdate;
};
Цитата
Topic starter Размещено : 12.02.2022 19:40
Родион
(@rodion-2)
Level 2

Проблема исчезла, когда я родителем у класса Oscilloscope сделал QObject. Правильно ли я понимаю, что сделав в качестве родителя самый базовый класс Qt, я гарантировал, что мой созданный класс будет собираться перед MainWindow?

ОтветитьЦитата
Topic starter Размещено : 12.02.2022 20:59
Aveal
(@aveal)
Top level Admin

@rodion-2 А можешь проблемный проект скинуть, с ошибкой?

ОтветитьЦитата
Размещено : 14.02.2022 09:37
Родион
(@rodion-2)
Level 2

@aveal Могу, но только вечером. Спасибо большое

ОтветитьЦитата
Topic starter Размещено : 14.02.2022 12:19
Поделиться: