'{'之前的预期类名

时间:2013-12-26 15:00:18

标签: c++ qt qtgui qmainwindow qdialog

我是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 个答案:

答案 0 :(得分:6)

您似乎还有两个问题正在进行中。

1)您应该包括ui_mainwindow.h而不是mainwindow.h,这通常是UI编译器(即uic)默认生成的内容,除非您明确更改它。我认为这不是这种情况,因为通常没有必要。

关于第二个问题,您可以通过两种不同的方式使其工作:

2a)Single inheritance approach:简而言之,就是这种方式,你使用的是组合而不是UI类的继承。所以,如果你选择这样做,你只需要指针成员而不是继承ui类。

2b)Multiple inheritance approach:简而言之,就这样,你使用多重继承作为其名称而非组合。您不以这种方式使用指针成员,而是私有地从ui类继承。

目前,您似乎对上述两种情况采取了错误的混合方式。试着坚持其中一个。