ну, я новичок в Qt, но не очень нов в c ++, ошибка вступает в силу для рекурсивных включений, но посмотрите на мой код, я не вижу никаких рекурсивных включений … я думаю, что это что-то еще, кто-нибудь поможет мне с следующей ошибкой:
ожидаемое имя класса до ‘{‘ token {
Вот мой код:
#ifndef COLE_H
#define COLE_H
#include <QDialog>
#include "mainwindow.h"
namespace Ui {
class COLE;
}
class COLE : public QDialog , public Ui::MainWindow
{
Q_OBJECT
public:
explicit COLE(QWidget *parent = 0);
~COLE();
private slots:
void on_pushButton_clicked();
public:
double var1;
private:
Ui::COLE *ui;
};#endif // COLE_H
Я знаю, что проблема возникла из «public Ui :: MainWindow», но я уверен, что так и должно быть. Я проверяю название моего класса и его MainWindow.
Пожалуйста, помогите.
Кажется, у вас есть две проблемы.
1) Вы должны быть в том числе ui_mainwindow.h
скорее, чем mainwindow.h
как обычно это то, что генерируется по умолчанию компилятором пользовательского интерфейса (то есть uic), если вы не измените его явно. Я предполагаю, что это не тот случай, поскольку это обычно не является необходимым.
Что касается второго вопроса, вы можете заставить его работать двумя разными способами:
2а) Единый подход наследованияКороче говоря, таким образом, вы используете композицию, а не наследование от класса пользовательского интерфейса. Поэтому, если вы решите сделать это таким образом, вам понадобится только указатель члена, а не наследование класса пользовательского интерфейса.
2b) Подход множественного наследованияКороче говоря, таким образом, вы используете множественное наследование, как говорит его имя, а не состав. Вы не используете член-указатель таким образом, но конфиденциально наследуете от класса пользовательского интерфейса.
В настоящее время у вас, похоже, неверный подход к двум вышеупомянутым случаям. Попробуйте придерживаться одного из них.
Других решений пока нет …