Не понимаю, у меня есть заголовок:
#pragma once
#include <QObject>
#include <QString>
#include <QtQml>
#include <qqml.h>
#include <iostream>
class MainWindow : public QObject
{
Q_OBJECT
Q_PROPERTY(QString userName READ userName WRITE setUserName NOTIFY userNameChanged)
public:
explicit MainWindow(QObject *parent = nullptr);
QString userName();
void setUserName(const QString &userName);
public slots:
signals:
void userNameChanged();
private:
QString m_userName;
};
И cpp:
#include "MyWindow.h"
MainWindow::MainWindow(QObject *parent) : QObject(parent)
{
}
QString MainWindow::userName() {
return m_userName;
}
void MainWindow::setUserName(const QString &userName) {
std::cout << "SET USERNAME" << std::endl;
m_userName = userName;
}
void MainWindow::userNameChanged() {
std::cout << "UPDATED" << std::endl;
}
При компиляции выдает ошибку:
/ путь / к / файлу / build / moc_MyWindow. cpp: 169: ошибка: множественное определение `MainWindow :: userNameChanged () '; MyWindow.o: / path / to / file / build /../ project / Views / MyWindow. cpp: 17: сначала определено здесь
Я не понимаю, в чем проблема.
Спасибо