Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在‘之前应为类名;{’;_C++_Qt_Qtgui_Qmainwindow_Qdialog - Fatal编程技术网

C++ 在‘之前应为类名;{’;

C++ 在‘之前应为类名;{’;,c++,qt,qtgui,qmainwindow,qdialog,C++,Qt,Qtgui,Qmainwindow,Qdialog,“{”标记之前应为类名{ 这是我的密码: #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);

“{”标记之前应为类名{

这是我的密码:

#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
\ifndef COLE\u H
#定义COLE_H
#包括
#包括“mainwindow.h”
名称空间用户界面{
科尔类;
}
类:公共QDialog,公共Ui::MainWindow
{
Q_对象
公众:
显式COLE(QWidget*parent=0);
~COLE();
专用插槽:
单击按钮时无效();
公众:
双var1;
私人:
Ui::COLE*Ui;
};
#完//COLE_H
我知道问题来自“public Ui::MainWindow”,但我确信应该是这样的


请提供帮助。

您似乎正在处理两个问题

1) 您应该包括
ui\u mainwindow.h
而不是
mainwindow.h
,因为这通常是ui编译器(即uic)默认生成的,除非您显式更改它。我假设情况并非如此,因为这通常是不必要的

至于第二个问题,你可以用两种不同的方式来解决:

2a):简而言之,这种方式使用组合而不是从UI类继承。因此,如果选择这种方式,则只需要指针成员,而不是继承UI类

2b):简而言之,这种方式使用多重继承,正如其名称所示,而不是组合。这种方式不使用指针成员,而是私下从ui类继承


目前,您似乎在上述两种情况中混合使用了错误的方法。请尝试使用其中一种。

Ui名称空间中是否真的有其他COLE?您可能需要#包括“Ui_mainwindow.h”等等。是“public Ui::mainwindow”需要?这里的重要问题是:通过继承
Ui::MainWindow
,您试图实现什么?我总是使用多重公共继承方法,因此我没有注意到私有的“Ui::COLE*Ui”部分。OP不应该同时使用这两种方法。